用于从数组中检索所有匹配ID的MongoDB查询
我想从数据库中检索匹配经理Id和员工Id的文档,这两个Id以数组形式出现用于从数组中检索所有匹配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
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)