MongoDB Dot-Notation查询

时间:2010-11-09 16:34:48

标签: mongodb pymongo

我是MongoDB的新手,我在使用点符号查询工作时遇到了麻烦......

我正在使用pymongo与远程Amazon EC2实例上运行的MongoDB ...

我没有编写大量的XML解析代码来提取大量不同的数据,而是将XML转换为JSON,将所有内容转储到MongoDB中,然后尝试使用点符号查询提取我想要的数据...... / p>

数据转换为JSON并插入到Mongo中。我可以看到所有的插入(来自python shell)......

表示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”:“得分”})

执行这些类型的查询并将整个文档放回响应中的正确方法是什么?谢谢!

3 个答案:

答案 0 :(得分:0)

我已经在MongoDB shell中使用pymongo测试了这些查询,它们对我有用。您忘记将结果保存到变量和/或打印它们吗?

答案 1 :(得分:0)

如果您对子网站查询的查询很多,我建议您查看$ elemmatch。

“使用$ elemMatch查询运算符(mongod> = 1.3.1),您可以匹配数组中的整个文档。”

更多信息:official docs&一个blog post ......

答案 2 :(得分:0)

你插入的json对象有(u')。这是问题,XML到JSON的转换是不正确的。

 u'message:u'{category:{text:"scores"}