获取并排序数组Mongodb [英] Get And Sort In Array Mongodb

查看:89
本文介绍了获取并排序数组Mongodb的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的文件

{
    "id": "1",
    "myarray": [
        {
            "_id": "4",
            "name": "d",
            "order": 4
        },
        {
            "_id": "1",
            "name": "a",
            "order": 1
        },
        {
            "_id": "2",
            "name": "b",
            "order": 2
        }
    ]
}

从数据库获取数据时,我想按顺序查看数组中的排序数据 我正在尝试如下查询,但似乎不行,什么都没改变

i want to see sort data in array by order when get from db i am trying some query like below but it seems not OK and nothing changed

 db.collection.aggregate([{$unwind: "$myarray"},{$project: {orders:"$myarray.order"}},{$group: {_id:"$_id",min:{$min: "$orders"}}},{$sort: {min:1}}])

db.myarray.find({},{$sort:{"myarray.order":-1}})
db.collection.find({"_id":"1"}).sort({"myarray.order":1})

什么是正确的查询?

我需要这样的东西

db.collection.find({"_id":"1"}).sort({"myarray.order":1})

推荐答案

您可以使用聚合管道

db.collection.aggregate([
    { "$unwind": "$myarray" }, 
    { "$sort": { "myarray.order": 1 }}, 
    { "$group": { "_id": "$_id", "myarray": { "$push": "$myarray" }}}
])

这篇关于获取并排序数组Mongodb的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆