[英]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.