Mongoose在object下的对象上找到一个查询

时间:2018-03-07 16:55:29

标签: node.js mongodb mongoose

我有用户架构

var userSchema = new Schema({
     userId          : {type:String,default:'',required:true},
    firstName       : {type:String,default:'',required:true}, 
    lastName        : {type:String,default:'',required:true}, 
    email           : {type:String,default:'',required:true},
    password        : {type:String,default:'',required:true}, 
    mobileNumbers   : {}, 
    recoveryDetails : {}, 
    walletInfo      : {}, 
    savedAddress    : {}, 
    savedCards      : {}, 
    cart            : {
        productId              :  {type:String,default:'',required:true},
        productName            :  {type:String,default:'',required:true}, 
        productPrice           :  {type:String,default:'',required:true},
        productDescription     :  {type:String,default:'',required:true},
        productSpecifications  :  {}, 
        productSeller          :  {}, 
        productImages          :  [], // An array to store product images //
        productCategory        :  []  // Product categories array //

    }   // Shopping cart array of user //
});

我想找到带有产品ID的产品。我正在编写像

这样的查询
  userModel.findOne({'user.cart': {$elemMatch: {productId: productsId}}},function(err,productFoundInUserCart){
});

这是正确的方法吗?不适合我。任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您的查询错误,请尝试此操作

userModel.findOne({'cart.productId': productsId},function(err,productFoundInUserCart){
});