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

时间:2018-08-10 06:54:36

标签: mongodb mongoose mongodb-query

我想从数据库中检索与数组中的经理ID和员工ID匹配的文档。

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

这是我的代码:

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

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

2 个答案:

答案 0 :(得分:2)

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

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

db.collection.find(query)

答案 1 :(得分:0)

使用elemMatch来匹配数组的一个或多个键

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