我是新來的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. 在mongodb中查詢JavaScript日期對象
- 13. 在mongodb中的子查詢
- 14. 如何查詢mongodb中的特定內部對象?
- 15. MongoDB中的子對象
- 16. EF如何包含子對象查詢
- 17. MongoDb $查詢查詢與對象數組中的多個字段
- 18. 在MongoDB中查詢子對象不使用索引
- 19. 在mongodb中可以通過子對象查詢嗎?
- 20. MongoDB查詢:從子數組中排除對象?
- 21. MongoDB的:從對象ID在JSON查詢
- 22. MongoDB的複雜對象查詢
- 23. 查詢部分對象 - MongoDB的
- 24. MongoDB的PHP查詢與嵌套對象
- 25. MongoDB的查詢對象列表
- 26. 關於json對象的Mongodb查詢
- 27. MongoDB的查詢更新嵌套對象
- 28. Redash MongoDB的查詢通過對象ID
- 29. MongoDB的查詢子集合的嵌入對象
- 30. 如何用linq查詢對象的子對象
問題需要澄清正在使用哪種編程語言/驅動程序,以及人們可以正確回答的文檔示例 – 2011-01-22 11:03:34