2015-11-04 88 views
1

我必須知道,如果一個項目是在第一或在此模型中的第二個陣列。查找對象的不同數組對象與貓鼬

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){ 

但它不工作。

回答

1

可以使用$or聲明:

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

謝謝......我誤會了對方(AND和OR)。 –