我想从数据库中检索与数组中的经理ID和员工ID匹配的文档。
SELECT * FROM XXX WHERE MANAGER_ID=<manager_id> AND EMPLOYEE_ID IN [....]
这是我的代码:
var query = [
{
"$and": [
{"employee": { $in : employees}},
{"manager": ObjectId(managerId)}
]
}
];
但是实际上,查询返回模型中的所有文档。 请告知。
答案 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)
}
}