2012-04-25 113 views
5

我有文件MongoDB中是这样的:Pymongo查询词典里面的字典?

{"ONE": {"TWO": {"THREE":"5"}}} 

我想用Pymongo find API查询的MongoDB,但它不工作:

for value in dbaccess.find({"ONE":{"TWO":{"THREE":{"$gt":"0"}}}}): 
    print value 

没有什么是得到印有上面的代码。

回答

9

两件事情:

  1. 如果你想治疗的5文档作为一个整数,不将其括在双引号。
  2. 查询嵌套文档使用点表示法:

    dbaccess.find("ONE.TWO.THREE": {"$gt": 0})

+0

优秀!非常感谢。另一个问题....如果我想拥有所有值的总和.....我们有办法得到它吗?例如...如果我有多个这样的文件,我的目标是获得所有ONE.TWO.THREE值的总和....是否有可能从pymongo API获得它?可以找到或者其他任何帮助我一样吗? – Gana 2012-04-25 13:58:47

+0

请参阅[此处]讨论的集合的组方法(http://api.mongodb.org/python/current/api/pymongo/collection.html?highlight=group#pymongo.collection.Collection.group)。 – JohnnyHK 2012-04-25 14:20:58

+0

再次感谢你。只有一个问:.. ..我有一个奇怪的情况..你建议查询为“ONE.TWO.THREE”,但在一些文件中,“TWO”可以是其他任何东西:-(....我试图使用reqx并且给予*而不是TWO但不起作用:-( – Gana 2012-04-25 15:18:23