代码之家  ›  专栏  ›  技术社区  ›  David Faizulaev

MongoDB查询从数组中检索所有匹配的ID

  •  1
  • David Faizulaev  · 技术社区  · 8 年前

    SELECT * FROM XXX WHERE MANAGER_ID=<manager_id> AND EMPLOYEE_ID IN [....]
    

    这里是我的代码:

    var query = [
        {             
            "$and": [ 
                {"employee": { $in : employees}}, 
                {"manager": ObjectId(managerId)}
            ]
        }
    ];
    

    但实际上,查询返回模型中的所有文档。 请告知。

    2 回复  |  直到 8 年前
        1
  •  2
  •   Ashh    8 年前

    在find查询中,第一个参数应该是对象而不是数组

    var query = {
      "$and": [
        { "employee": { $in : employees }},
        { "manager": ObjectId(managerId) }
      ]
    }
    
    db.collection.find(query)
    
        2
  •  0
  •   Janen R    8 年前

    elemMatch 匹配数组的一个或多个键

       ArrayFieldName: {
                    "$elemMatch": {
                        "employee": {
                            $in: employees
                        },
                        "manager": ObjectId(managerId)
                    }
         }
    
    推荐文章