MongoDB Dot-Notation Query - PullRequest
       2

MongoDB Dot-Notation Query

3 голосов
/ 09 ноября 2010

Я новичок в MongoDB, и у меня возникают проблемы с выполнением запросов точечной нотации ...

Я использую pymongo с MongoDB, работающим на удаленном экземпляре Amazon EC2 ...

Вместо написания массивного кода XML-анализа для извлечения большого количества различных данных, я преобразовываю XML в JSON, выкидываю все в MongoDB, а затем пытаюсь извлечь фрагменты данных, которые я хочу, используя запросы с точечной нотацией ...

Данные преобразуются в JSON и вставляются в штраф Mongo.Я вижу все вставки (из оболочки python) ...

для элемента в 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 ":" Scores "})

Как правильно выполнять запросы такого типа и возвращать весь документ обратно в ответ?Спасибо!

Ответы [ 3 ]

0 голосов
/ 23 ноября 2010

Я бы посоветовал заглянуть в $ elemmatch, если вы много работаете с запросами на запросы вложенных документов.

"Используя оператор запроса $ elemMatch (mongod> = 1.3.1), вы можетесопоставить весь документ в массиве. "

Подробнее здесь: официальные документы и сообщение в блоге ...

0 голосов
/ 15 февраля 2014

у вашего вставленного объекта json есть (u ').Это проблема, преобразование XML в JSON неверно.

 u'message:u'{category:{text:"scores"}
0 голосов
/ 09 ноября 2010

Я проверил эти запросы, как из оболочки MongoDB, так и с помощью pymongo, и они работают на меня.Вы забыли сохранить результаты в переменной и / или распечатать их?

...