Mongodb 猫鼬参考
我目前正试图引用一个名为items的集合,其结构如下Mongodb 猫鼬参考,mongodb,mongoose,Mongodb,Mongoose,我目前正试图引用一个名为items的集合,其结构如下 packageSchema = schema({ recipient: String, contents: [{item :{type: mongoose.Schema.Types.ObjectId, ref: 'items', required : true}, amount: String}] 下面是我通过id获取一个包的代码
packageSchema = schema({
recipient: String,
contents: [{item :{type: mongoose.Schema.Types.ObjectId,
ref: 'items', required : true}, amount: String}]
下面是我通过id获取一个包的代码
getOnePackage : function(id,callback)
{
packageModel.findById(id,callback)
.populate('contents')
}
所以当我调用上面的函数时,我希望得到这个结果
{
recipient : Dave
contents : [
{item : {
_id:5d2b0c444a3cc6438a7b98ae,
itemname : "Statue",
description : "A statue of Avery"
} ,amount : "2"},
{item : {
_id:5d25ad29e601ef2764100b94,
itemname : "Sugar Pack",
description : "Premium Grade Sugar From China"
} ,amount : "5"},
]
}
但我在《邮递员》中的测试结果是:
{
recipient : Dave,
contents : []
}
我可以知道哪里出了问题吗?还有,如何防止mongoose自动为内容数组中的每个元素插入objectId…因为内容数组中的元素是带有项目字段的对象,所以您的填充应该是:
.populate('contents.item')
Tks:,它像一个符咒一样工作,也为迟来的回复道歉