3

私は MongoDB を初めて使用し、ドット表記クエリを機能させるのに問題があります...

リモートの Amazon EC2 インスタンスで実行されている MongoDB で pymongo を使用しています...

大量の XML 解析コードを記述して多数の異なるデータを抽出する代わりに、XML を JSON に変換し、すべてを MongoDB にダンプしてから、ドット表記クエリを使用して必要なデータを抽出しようとしています...

データは JSON に変換され、Mongo に正常に挿入されます。私はすべての挿入を見ることができます(Pythonシェルから)...

for item in db.feed.find(): item

返されるアイテムの例を次に示します...

   {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": "スコア"})

これらのタイプのクエリを実行し、応答でドキュメント全体を取得する適切な方法は何ですか? ありがとう!

4

3 に答える 3

0

挿入された json オブジェクトには (u') があります。これが問題です。XML から JSON への変換が正しくありません。

 u'message:u'{category:{text:"scores"}
于 2014-02-14T21:15:28.610 に答える
0

MongoDB シェル内と pymongo の両方を使用して、これらのクエリをテストしましたが、うまくいきました。結果を変数に保存したり、出力したりするのを忘れていませんか?

于 2010-11-09T18:38:22.837 に答える
0

サブドキュメント クエリのクエリを頻繁に処理している場合は、$elemmatch を調べることをお勧めします。

「$elemMatch クエリ演算子 (mongod >= 1.3.1) を使用すると、配列内のドキュメント全体を照合できます。」

詳細はこちら:公式ドキュメント&ブログ投稿...

于 2010-11-23T03:56:46.777 に答える