我有一個MongoDB的文檔結構是這樣的:搜索多個字段陣列中的
{
"user_id": 7387,
"first_name": "Daniel",
"roles": [
{
"role_id": "509c20144fd846549e8d42ef",
"role_name": "Writer",
"is_lead": 0
},
{
"role_id": "509c20344fd846549e8d42f0",
"role_name": "Editor",
"is_lead": 1
}
]
},
{
"user_id": 15735,
"first_name": "Tom",
"roles": [
{
"role_id": "509c203f4fd846549e8d42f1",
"role_name": "Admin",
"is_lead": 0
},
{
"role_id": "509c20144fd846549e8d42ef",
"role_name": "Writer",
"is_lead": 1
},
{
"role_id": "509c20344fd846549e8d42f0",
"role_name": "Editor",
"is_lead": 0
}
]
}
如何找到誰已經roles.role_name作爲作家和roles.is_lead爲1的所有用戶(誰是所有的作家也是領先的)?
我想:
db.users.find({$and:[{"roles.role_name":"Writer","roles.is_lead":1}]});
在上面的例子中,它應該只返回 「湯姆」。但是,這同時返回「湯姆」和「丹尼爾」(我猜它選擇{roles.is_lead:1}「丹尼爾」的編輯角色如何解決這個查詢
感謝
我試過了,但它返回了兩個文檔。 – Rainbard
你試過我最近的更新嗎?我的第一個回答是錯誤的。但elemMatch適合我 – jdi