【问题标题】:Find an object in different arrays of object with mongoose用猫鼬在不同的对象数组中查找对象
【发布时间】:2016-02-05 14:03:19
【问题描述】:

我必须知道一个项目是在这个模型的第一个数组还是第二个数组中。

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

但它不起作用。

【问题讨论】:

    标签: arrays node.js mongodb mongoose


    【解决方案1】:

    您可以使用$or 语句:

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

    【讨论】:

    • 谢谢...我误会了对方(and and or)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2017-03-28
    • 2023-01-22
    • 2021-01-24
    • 2015-12-28
    • 2021-05-06
    相关资源
    最近更新 更多