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

用于从数组中检索所有匹配ID的MongoDB查询,mongodb,mongoose,mongodb-query,Mongodb,Mongoose,Mongodb Query,我想从数据库中检索匹配经理Id和员工Id的文档,这两个Id以数组形式出现 SELECT * FROM XXX WHERE MANAGER_ID=<manager_id> AND EMPLOYEE_ID IN [....] 但实际上,查询返回模型中的所有文档。 请告知。使用elemMatch获得与阵列的一个或多个密钥匹配的密钥 ArrayFieldName: { "$elemMatch": { "emplo

我想从数据库中检索匹配经理Id和员工Id的文档,这两个Id以数组形式出现

SELECT * FROM XXX WHERE MANAGER_ID=<manager_id> AND EMPLOYEE_ID IN [....]
但实际上,查询返回模型中的所有文档。
请告知。

使用
elemMatch
获得与阵列的一个或多个密钥匹配的密钥

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

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

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

db.collection.find(query)

我认为问题在于数组
[]
。。。它应该是
var query={“$and”:[{“employee”:{$in:employees},{“manager”:ObjectId(managerId)}]}
谢谢!它有效,请作为答案发布。
var query = {
  "$and": [
    { "employee": { $in : employees }},
    { "manager": ObjectId(managerId) }
  ]
}

db.collection.find(query)