我在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'}
]
}
请帮帮我。提前致谢
答案 0 :(得分:1)
你可以试试这个:
cursor = db.database.find({ "data.name3": "searchValue" }, {"data.$" : 1}).sort([( "_id" , -1 ) ]).limit(1)