我是新來的MongoDB和我遇到讓我的點號查詢工作的麻煩......MongoDB的點號查詢
我使用pymongo與遠程Amazon EC2實例上運行的MongoDB ..
不是寫大量的XML解析代碼來提取大量不同的數據,而是將XML轉換爲JSON,將所有內容轉儲到MongoDB中,然後嘗試使用點符號查詢提取我想要的數據片段。
將數據轉換爲JSON並插入到Mongo中。我可以看到所有的插件(從Python殼)的...
的項目在db.feed.find(): 項目
這裏是返回的一個例子項目...
{u'timestamp': datetime.datetime(2010, 11, 8, 20, 19, 55, 87000), u'message': u'{"category": {"text": "Scores"}, "XML_File_ID": {"text": "12292403"}, "game": {"status": {"text": "4 Qtr", "attrib": {"numeral": "4", "type": "P"}}, "time_r": {"text": "10:01"}, "vscore": {"text": "27"}, "vteam": {"text": "Pittsburgh", "attrib": {"id": "082"}}, "hteam": {"text": "Cincinnati", "attrib": {"id": "064"}}, "hscore": {"text": "14"}}, "seasontype": {"text": "Regular"}, "schedule_id": {"text": "3151"}, "location": {"city": {"text": "Pittsburgh"}, "state": {"text": "PA"}, "country": {"text": "USA"}}, "time_stamp": {"text": " November 8, 2010, at 11:19 PM ET "}, "game_id": {"text": "3151"}, "sport": {"text": "NFL"}, "heading": {"text": "BC-ABP+082:064* 27 14 4R10:01"}}', u'_id': ObjectId('4cd8cbebe8b5d58527000016')}
所以我試圖做這樣的查詢,但我沒有得到任何結果...
db.feed.find_one({「message.category.text」:「成績」 })
執行這些類型的查詢並將整個文檔恢復到響應中的正確方法是什麼?謝謝!
謝謝查爾斯,我發現了主要問題,只是試點錯誤。當插入消息數據(從xml轉換爲json)時,雙引號字符留在json「消息」對象周圍,將其呈現爲純文本而不是json對象。在python方面,我只是做一個eval(jsonString)來擺脫插入的雙引號... – barl3yb3ar 2010-11-09 23:54:05
我注意到的另一件事是我的點符號查詢必須從頂部的完全限定文件。例如,我希望搜索{「game_id.text」:「3151」},但我需要使用{「message.game.game_id.text」:「3151」}從json文檔的頂部進行搜索 – barl3yb3ar 2010-11-09 23:57:16