美好的一天每個人。 假設我們有一個集合,它看起來是這樣的文件:從文檔中檢索單個屬性
test_doc = {
"ID" : "123",
"a" : [
{
'x' : "/",
'y' : "2000",
'z' : "1000"
},
{
'x' : "/var",
'y' : "3500",
'z' : "3000"
}
]
}
我需要的是檢索單個屬性a.z。 在MongoDB中我使用下面的查詢:
db.testcol.find({"ID":"123","a.x":"/"},{'a.z':1})
返回此:
{ "_id" : ObjectId("skipped"), "a" : [ { "z" : "1000" }, { "z" : "3000" } ] }
正如你可以看到它返回所有z屬性,但我只需要第一個或第二當條件是{"ID":"123","a.x":"/var"}
所以,問題是:如何在這種情況下獲得單一財產?這只是一個糟糕的設計問題,或者我應該以某種方式處理代碼(python)中返回的文檔?任何建議將不勝感激。
感謝您的快速答覆,亞當其實我想對$ elemMatch過,但我有點困惑它如何工作。你的答案現在事情很明確。 – user91730
我還添加了一個如何使用聚合框架來做到這一點的例子 - 我需要先測試它,然後才能包含它:) –
Wow聚合似乎是一個非常整潔的功能。例如Thx,有用的:) – user91730