Mongodb查询搜索数组无法使用python工作

时间:2017-10-26 17:58:40

标签: python mongodb mongodb-query

我在mongoDb中的数据存储如下:

 {
    '_id': ObjectId('59f1989a83add71bf5ae6867'), 
    'data': [              
        {'name1': {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}, 
        'name2': {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}, 
        'name3': 'searchValue'},
        {'name1': {'key1': 'val4', 'key2': 'val5', 'key3': 'val6'}, 
        'name2': {'key1': 'val4', 'key2': 'val5', 'key3': 'val6'}, 
        'name3': 'otherValue'},
     .
     .
     .
     ]
    }

我在python中的查询是

cursor = db.database.find({ "data.name3": "searchValue" }).sort([( "_id" , -1 ) ]).limit(1)

以上查询返回整个数据。 我需要以下输出。

{
    '_id': ObjectId('59f1989a83add71bf5ae6867'), 
    'data': [              
        {'name1': {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}, 
        'name2': {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}, 
        'name3': 'searchValue'}
    ]
}

请帮帮我。提前致谢

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

cursor = db.database.find({ "data.name3": "searchValue" }, {"data.$" : 1}).sort([( "_id" , -1 ) ]).limit(1)