我有兩個集合之間檢索信息的問題。 第一個集合存儲員工信息:MongoDB查詢在對象數組中
{
"_id" : ObjectId("4f9643967f8b9a3f0a00005a"),
"birth_date" : "1963-09-09",
"departments" : [
{
"departments_id" : ObjectId("4f9643957f8b9a3f0a000007"),
"from_date" : "1990-01-03",
"to_date" : "1990-01-15"
}
],
"first_name" : "Parviz",
"gender" : "M",
"hire_date" : "1990-01-03",
"last_name" : "Lortz",
}
第二個部門的信息
{
"_id" : ObjectId("4f9643957f8b9a3f0a000004"),
"dept_name" : "Marketing",
"managers" : [
{
"employees_id" : ObjectId("4f96439b7f8b9a3f0a0186a9"),
"from_date" : "1985-01-01",
"to_date" : "1991-10-01"
},
{
"employees_id" : ObjectId("4f96439b7f8b9a3f0a0186aa"),
"from_date" : "1991-10-01",
"to_date" : "9999-01-01"
}
]
}
我試圖找到:所有部門指定員工。
我想是這樣的:
employees = db.employees.find({_id:ObjectId("some_id")});
db.departments.find({_id:{$in:...}});
但我不知道我怎樣才能從VAR員工各部門的部門標識說明$。
好的..是的,我知道設計問題。但我沒有分享有關部門的所有信息。實際上,每個部門都有一份管理人員名單(見:更新後),說明爲什麼我分裂了部門和員工。並且你真的關於循環,但我想知道是否可以用簡單的查詢來做到這一點 – Kakawait 2012-04-24 14:24:02
我已經更新了我的答案,爲了使這項工作,你需要重新設計你的模式。 – Derick 2012-04-24 15:10:43