Node.js通过数组中的元素查找文档

时间:2014-02-14 23:00:47

标签: javascript node.js mongoose

我有一个具有以下结构的用户架构:

new Schema({
            email : String,
            password : String,
            shoppingCart : [{type : Schema.Types.ObjectId, ref : 'Product'}]
        });

我还有一个产品架构如下:

new Schema({
            title : String,
            description : String,
            vendorId : String,
            stock : Number
        });

如何在购物车中搜索具有特定产品的用户? 我试过了两个

UserModel.find({shoppingCart : product._id})...
and
UserModel.find({'shoppingCart._id' : product._id})....

但遗憾的是它不起作用。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

你试过......

UserModel.find({shoppingCart : product})

如果您在查询中使用实际对象,它会将自身水合成ID并根据该对象ID运行搜索。

因为你有一个Schema类型" Schema.Types.ObjectId"如果你跑

UserModel.find({shoppingCart : product._id})

它会搜索product._id为" String"不是ObjectId。