Mongodb 如何构造查询以返回布尔值为true的文档,否则返回布尔值为false的文档 请考虑此文档结构: { _id: <ObjectId>, version: <int> approved: <bool> }

Mongodb 如何构造查询以返回布尔值为true的文档,否则返回布尔值为false的文档 请考虑此文档结构: { _id: <ObjectId>, version: <int> approved: <bool> },mongodb,pymongo,pymodm,Mongodb,Pymongo,Pymodm,我的目标是获得批准的最新文档版本。这将是文件版本2 但是,使用此数据集: [ { version: 1, approved: false}, { version: 2, approved: false}, { version: 3, approved: false} ] 我希望得到版本3的文档作为最新版本 我如何通过一个mongodb查询来实现这一点 出于兴趣,我正在使用pymongo和pymodm库处理python。我假设我必须做一个原始的MongoDB查询,所以我认

我的目标是获得批准的最新文档版本。这将是文件版本2

但是,使用此数据集:

[
    { version: 1, approved: false},
    { version: 2, approved: false},
    { version: 3, approved: false}
]
我希望得到版本3的文档作为最新版本

我如何通过一个mongodb查询来实现这一点


出于兴趣,我正在使用pymongo和pymodm库处理python。我假设我必须做一个原始的MongoDB查询,所以我认为这并不重要,但是如果您知道更好的方法,请告诉我

您可以先按批准字段排序,然后按版本字段排序。下面的代码是如何在mongoshell
db.YourCollection.find().sort({approved:-1,version:-1})中获得所需的文档
使用pymongo
doc=db['YourCollection'].find().sort([('approved',-1),('version',-1)]).next()

[
    { version: 1, approved: false},
    { version: 2, approved: false},
    { version: 3, approved: false}
]