我是新来的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