2012-05-25 34 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}}) 
相關問題