Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB:查找具有相同键值的文档集_Node.js_Mongodb - Fatal编程技术网

Node.js MongoDB:查找具有相同键值的文档集

Node.js MongoDB:查找具有相同键值的文档集,node.js,mongodb,Node.js,Mongodb,我正在根据以下条件搜索收藏: const orders=Order.find({status:'ACTIVE',isInFlux:true}); 然后,当我循环浏览每一个文档时,我再次使用以下命令搜索订单: Order.find({userId:Order.userId,状态:'ACTIVE',inflow:true}) 然后我检查是否有多个属于该用户的订单满足这些条件 有没有一种方法可以修改我的查询,一次获取这些文档,而不必遍历所有文档,也不必进行可能对我有帮助的聚合?看起来您只是在尝试按

我正在根据以下条件搜索收藏:

const orders=Order.find({status:'ACTIVE',isInFlux:true});
然后,当我循环浏览每一个文档时,我再次使用以下命令搜索订单:

Order.find({userId:Order.userId,状态:'ACTIVE',inflow:true})
然后我检查是否有多个属于该用户的订单满足这些条件


有没有一种方法可以修改我的查询,一次获取这些文档,而不必遍历所有文档,也不必进行可能对我有帮助的聚合?

看起来您只是在尝试按用户ID有条件地对订单进行分组。这可能会起到作用:

db.collection.aggregate([
  {
    "$group": {
      "_id": "$user",
      "orders": {
        "$push": {
          "$cond": [
            {
              $and: [
                {
                  "$eq": [
                    "$isInFlux",
                    true
                  ]
                },
                {
                  "$eq": [
                    "$status",
                    "active"
                  ]
                }
              ]
            },
            "$$ROOT",
            "$$REMOVE"
          ]
        }
      }
    }
  }
])

操场:

看起来您只是在尝试按用户ID有条件地对订单进行分组。这可能会起到作用:

db.collection.aggregate([
  {
    "$group": {
      "_id": "$user",
      "orders": {
        "$push": {
          "$cond": [
            {
              $and: [
                {
                  "$eq": [
                    "$isInFlux",
                    true
                  ]
                },
                {
                  "$eq": [
                    "$status",
                    "active"
                  ]
                }
              ]
            },
            "$$ROOT",
            "$$REMOVE"
          ]
        }
      }
    }
  }
])
游乐场: