MongoDB:获取所有提到的项目

时间:2015-09-06 17:41:40

标签: mongodb mongoose

所以我的Mongoose / MongoDB-Application中有两个关系:

USER:

{
   name: String,
   items: [{ type: mongoose.Schema.ObjectId, ref: 'Spot' }]
}

和 ITEM

{
   title: String,
   price: Number
}

正如您所看到的,我的用户集合包含与项目集合“有很多”的关系。

我想知道如何获取特定用户的items-field中提到的所有项目。

猜猜它非常常见的问题,但我无法在Docs或其他地方找到任何解决方案。有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

如果您要在用户集合中存储项目引用,然后从用户获取所有项目,它将为您提供一系列项目的对象ID,然后您可以根据其ID访问所有项目

var itemIdsArray = User.items;

    Item.find({
        '_id': { $in: itemIdsArray}
    }, function(err, docs){
         console.log(docs);
    });

答案 1 :(得分:0)

通过使用Mongoose对population的支持,您可以在查询用户的同时获取这些项目:

 /blog/home?system=bob