我在mongo数据库中有一个子对象,其中的字段包含空格,如:
{name: "John Doe", subdata: {"Field 1": "Something", "Field 2": "Something else"}}
从我能够找到的,mongo允许字段1和字段2,但我还没有找到任何关于如何构造查询以查找subdata的指示。字段1.是否存在我可以在我的例子中搜索Field 1和Field 2,或者我应该重构我的数据以摆脱空格?
答案 0 :(得分:2)
除非我误解了你的问题,否则你可以这样做:
db.test.find({ "subdata.Field 1" : 'Something' } );
答案 1 :(得分:0)
好吧,我不知道pymongo,但是其他语言的许多库都提供了对象文档映射功能。我打赌你也会遇到这个问题,因为“Field 1”在我听说的每种语言中都是无效的标识符。
我的建议:摆脱空白,将来会节省大量时间。
答案 2 :(得分:0)
空格是Mongo字段名称的有效字符。
字段名称不能包含点(即。)或null characters(即\ 0),并且它们不能以美元符号(即$)开头。
所以这种查找应该像魅力一样:
db.collection.find({"subdata.Field 1": {$exists: true}})