Mongodb 猫鼬参考

Mongodb 猫鼬参考,mongodb,mongoose,Mongodb,Mongoose,我目前正试图引用一个名为items的集合,其结构如下 packageSchema = schema({ recipient: String, contents: [{item :{type: mongoose.Schema.Types.ObjectId, ref: 'items', required : true}, amount: String}] 下面是我通过id获取一个包的代码

我目前正试图引用一个名为items的集合,其结构如下

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:,它像一个符咒一样工作,也为迟来的回复道歉