2012-05-25 119 views
1

我有一个蒙戈数据库的子对象与包含空格的领域,是这样的:如何使用mongo中的点符号查询带空格的字符串?

{name: "John Doe", subdata: {"Field 1": "Something", "Field 2": "Something else"}} 

从我已经能够找到,蒙戈允许场场1和场2,但还没能够找到任何指示如何构建一个查询来查找subdata.Field 1.有没有一种方法可以搜索字段1和字段2在我的例子中,或者我应该重构我的数据以摆脱空白?

+0

蒙戈告诉我,这是不正确的JSON符号这是正确的行为。如果“字段1”相当于“字段1”等,则它是有效且可查询的。 –

回答

0

嗯,我不知道pymongo,但许多其他语言库提供对象文档映射功能。我敢打赌,你也会遇到这方面的问题,因为“字段1”在我听说的每种语言中都是无效标识符。

我的建议是:摆脱空白,你将在未来节省大量的时间。

+0

我接受了你的建议,只是为了简单而抛弃了空白。 –

2

除非我误解你的问题,你可以这样做:

 
db.test.find({ "subdata.Field 1" : 'Something' }); 
0

空间是蒙戈字段名称的有效字符。

Restrictions on Field Names

字段名称不能包含点(即)或null characters(即\ 0),他们不能以美元符号(即$)开始。

这么样的查找应该像一个魅力:

db.collection.find({"subdata.Field 1": {$exists: true}})