在python中查询嵌套列表 - 查询语法问题

时间:2017-08-23 06:17:32

标签: python json mongodb pymongo

我想在Python中使用PyMongo查询MongoDB中的嵌套列表。问题在于检查第二级(内部列表)参数值的查询。

集合的结构如下:

[
   {
    "name": "rahul", 
    "values": [
                {
                    "time":"2017-08-08 05:01:11"
                    "a": 5.766666666666667,
                    "b" : 3,
                    "c" : 2
                },
                {
                    "time":"2017-08-08 05:16:40"
                    "a": 5.766666666666667,
                    "b" : 3,
                    "c" : 2
                }
        ]
    },
   {
    "name": "shenoy", 
    "values": [
                {
                    "time":"2017-08-08 05:01:11"
                    "a": 1,
                    "b" : 6,
                    "c" : 8
                },
                {
                    "time":"2017-08-08 05:16:40"
                    "a": 5,
                    "b" : 8,
                    "c" : 1
                }
        ]
    }

]

我希望所有文件的价值为" c"等于1。 我遇到的解决方案就像:

for data in db.collection_name.find({'values.c': 1})

但是,这没有成功。我也试过像"values.$.c" : 1这样的解决方案。 请为我提供一些查询此JSON数据的解决方案。

1 个答案:

答案 0 :(得分:0)

使用$elemMatch

collection.find_one({'values': {'$elemMatch': {'c': 1}}})