gpt4 book ai didi

python - 是否可以直接使用 pymongo 对子文档的 mongodb 数组进行排序?

转载 作者:可可西里 更新时间:2023-11-01 10:01:01 24 4
gpt4 key购买 nike

我不需要对返回的文档(对象)进行排序,而是根据嵌套值对每个文档(对象)进行排序。pymongo.sort() 是否可行?

假设一个对象是:

{ //document data,
array : [ {//subdocument data,
"key" : 185},
{//subdocument data,
"key" : 186},
{...}]
}

我尝试了以下不起作用但我搜索了一个简单的类似选项:

db.col.find().sort('array.key', pymongo.ASCENDING)

还是应该用 python 排序?

for location in locations:
data['array'] = sorted(data['array'], key=lambda x: x['key'])

最佳答案

抱歉,目前这在 Mongo 中是不可能的。

所以你唯一的办法就是在你的应用层中对它进行排序,你正在成功地做到这一点。请注意,如果您始终希望对结果进行排序,可以使用 $sort in your $push operator. 来实现。在你的情况下你会做这样的事情:

db.coll.update(
{ _id : ID },
{
$push: {
array: {
$each: [{ key: 13}],
$sort: { key: 1 }
}
}
})

这样,在任何更新后,您的子文档将被排序。然后当您检索它时,您将不需要对其进行排序。

关于python - 是否可以直接使用 pymongo 对子文档的 mongodb 数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19735324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com