【问题标题】:Node.js find document by an element in arrayNode.js 通过数组中的元素查找文档
【发布时间】:2014-02-15 08:00:20
【问题描述】:

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

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})....

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

【问题讨论】:

    标签: javascript node.js mongoose


    【解决方案1】:

    你试过了吗……

    UserModel.find({shoppingCart : product})
    

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

    如果您运行,您的架构类型为“Schema.Types.ObjectId”

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

    它会将 product._id 搜索为“String”而不是 ObjectId。

    【讨论】:

    • 我认为这应该是一个评论,除非扩展成一个完整的答案。
    猜你喜欢
    • 1970-01-01
    • 2016-04-14
    • 2020-08-24
    • 2011-10-04
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    相关资源
    最近更新 更多