我是新來的mongodb,並且正在嘗試查詢子對象。我有一個國家的集合,每個國家都有兒童城市。其中一個城市的名稱屬性爲null,這會導致我的應用出現錯誤。我將如何查詢州集合以查找具有名稱== null的子城市?如何查詢mongodb中的子對象
55
A
回答
84
如果正是null
(相對於不設置):
db.states.find({"cities.name": null})
(但javierfp指出,這也符合那些沒有城市數組中的所有文件,我假設他們這樣做)。
如果它的屬性沒有設置的情況下:
db.states.find({"cities.name": {"$exists": false}})
我測試過以上這兩個刀片創建的集合:
db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})
第一個查詢尋找第一狀態,第二個查詢找到第二個。如果你想找到他們都與一個查詢就可以使一個$or
查詢:
db.states.find({"$or": [
{"cities.name": null},
{"cities.name": {"$exists": false}}
]})
22
假設你的「狀態」集合是這樣的:
{"name" : "Spain", "cities" : [ { "name" : "Madrid" }, { "name" : null } ] }
{"name" : "France" }
查詢找到與空市州將:
db.states.find({"cities.name" : {"$eq" : null, "$exists" : true}});
這是一個常見的錯誤爲空查詢爲:
db.states.find({"cities.name" : null});
因爲此查詢將返回缺少密鑰的所有文檔(在我們的示例中它將返回西班牙和法國)。因此,除非您確定密鑰始終存在,否則必須檢查密鑰是否存在於第一個查詢中。
相關問題
- 1. 如何查詢這個Mongodb對象?
- 2. MongoDB查詢:如何查找嵌套對象中的字符串
- 3. 如何查詢子文檔中的mongodb
- 4. 如何使用mongodb中的字段中的點查詢對象
- 5. MongoDB查詢在對象數組中
- 6. 在MongoDB中查詢嵌套對象
- 7. 在mongodb中的子查詢
- 8. MongoDB中的子對象
- 9. MongoDb $查詢查詢與對象數組中的多個字段
- 10. 在mongodb中可以通過子對象查詢嗎?
- 11. 在MongoDB中查詢子對象不使用索引
- 12. 關於json對象的Mongodb查詢
- 13. MongoDB的查詢對象列表
- 14. MongoDB的查詢更新嵌套對象
- 15. MongoDB的PHP查詢與嵌套對象
- 16. 查詢部分對象 - MongoDB的
- 17. Redash MongoDB的查詢通過對象ID
- 18. MongoDB的查詢子集合的嵌入對象
- 19. 如何用linq查詢對象的子對象
- 20. MongoDb c#Linq查詢並返回一個集合的子對象
- 21. mongodb查詢子域
- 22. 我們如何查詢對象id的mongodb數組?
- 23. Mongodb查詢(散列表對象)
- 24. MongoDB規範查詢嵌套對象
- 25. 從MongoDB查詢嵌套對象
- 26. 如何在MongoDB中查詢?
- 27. 查詢JavaScript父子對象
- 28. db4o查詢子對象
- 29. 如何查詢對象及其子對象爲JSON?
- 30. 如何查詢json子對象並返回整個父對象?
問題需要澄清正在使用哪種編程語言/驅動程序,以及人們可以正確回答的文檔示例 – 2011-01-22 11:03:34