3

我是 MongoDB 的新手,我无法让我的点符号查询工作......

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

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

数据被转换成 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": "Scores"})

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

4

3 回答 3

0

如果您经常处理关于子文档查询的查询,我建议您查看 $elemmatch。

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

更多信息:官方文档博客文章...

于 2010-11-23T03:56:46.777 回答
0

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

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

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

于 2010-11-09T18:38:22.837 回答