gpt4 book ai didi

arrays - mongodb对文档中数组的子项进行排序

转载 作者:行者123 更新时间:2023-12-03 20:17:56 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to sort array inside collection record in MongoDB?

(15 个回答)


4年前关闭。




我的数据如下所示:

{
"name":"dan",
"somestring":"asdf",
"friends":[

{
"name": "carl",
"height":180,
...
},
{
"name": "john",
"height":165,
...
},
{
"name": "jim",
"height":170,
...
}

]
},
...

我想检索 friend 按高度降序排序的文档。

我试过 db.getCollection('users').find({"name" : "dan"}, {"friends" : 1}).sort({"friends.height" : -1})但好友列表保持不变。

编辑:我搞砸了我的数据结构,我修复了数组看起来像一个数组......

最佳答案

一个选项是运行聚合:

  • 展开数组
  • friends.name 排序
  • 重组

  • 管道应如下所示:
    db.collection.aggregate([
    { $match: { name: 'dan' }},
    { $unwind: '$friends' },
    { $sort: { 'friends.height': -1 }},
    { $group: { _id: '$name', friends: { $push: '$friends'}}])

    关于arrays - mongodb对文档中数组的子项进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44797209/

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