簡體   English   中英

用貓鼬在不同對象數組中查找對象

[英]Find an object in different arrays of object with mongoose

我必須知道一個項目是否在此模型的第一個或第二個數組中。

Model:
_id: String,
array1: [{ id: Number, name: String, timestamp: String }],
array2: [{ id: Number, name: String, timestamp: String }],
array3: [{ id: Number, name: String, timestamp: String }],
array4: [{ id: Number, name: String, timestamp: String }]

});

我正在使用這些查詢,但是有人可以幫助我改進它,或者僅在一個查詢中做到嗎?

Model.findOne({_id: userId , 'array1.id': item.id },function(error, res) {
    if(!res){
      Model.findOne({_id: userId , 'array2.id': item.id },function(error, res) {
        if(!res){
          //do what i need;
          }else{
            //error;
          }
        });
    }else{
      //error;
    }
  });

我已經使用過類似的查詢:

Model.findOne({$and: [{_id: userId} ,{'array1.id': item.id }, {'array2.id': item.id} ]},function(error, res) {
    if(!res){

但這是行不通的。

您可以使用$or語句:

Model.findOne({$and: [{_id: userId} , { $or: [ {'array1.id': item.id }, {'array2.id': item.id} ] } ]},function(error, res) { if(!res){....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM