请考虑以下文档结构:
Failed to compile
GraphQL Error Field "elements" must not have a selection since type "String" has no subfields.
file: C:/xampp/htdocs/drupal-gatsby-t/node_modules/gatsby-drupal-webform/dist/Webform.jsx
1 |
2 | fragment Webform on webform__webform {
3 | name: drupal_internal__id
4 | description
5 | status
> 6 | elements {
| ^
7 | name
8 | _type
9 | _title
10 | _title_display
11 | _default_value
12 | _description
13 | _markup
14 | _maxlength
15 | _placeholder
16 | _required
现在,考虑以下数据集:
{
_id: <ObjectId>,
version: <int>
approved: <bool>
}
我的目标是获取批准的最新文档版本。那将是文档版本2。
但是,使用此数据集:
[
{ version: 1, approved: false},
{ version: 2, approved: true},
{ version: 3, approved: false}
]
我希望将版本3的文档作为最新版本。
如何通过一个mongodb查询来做到这一点?
出于兴趣,我正在使用pymongo和pymodm库通过python进行工作。我以为我必须做一个原始的MongoDB查询,所以我认为这没什么大不了的,但是如果您知道一种更好的解决方法,请告诉我!
答案 0 :(得分:1)
您可以先按批准的字段对其进行排序,然后再按版本字段对其进行排序。以下是如何在pymongo db.YourCollection.find().sort({approved:-1, version:-1}).next()
中的mongo shell doc = db['YourCollection'].find().sort([('approved',-1),('version',-1)]).next()
中根据需要获取文档的代码