【问题标题】:Sort Mongo subArray排序 Mongo 子数组
【发布时间】:2019-05-23 06:28:18
【问题描述】:
[
   {

    "t": "Sample Question",
    "d": "2018-12-23T21:21:03.430Z",
    "aa": [
        {

            "q": 1,
            "n": "5bee73accda38",
            "iU": "5bee73accda38/5c1f3d7341977/1.mp4"
        },
        {

            "q": 4,
            "n": "5bee73accda38",
            "iU": "5bee73accda38/5c1f3d7341977/1.mp4"
        }
    ]
}]

我是 Mongo 的新手,尝试在 MongoDB 中对 SubArray(Descending) 进行排序,但仍然无法根据子数组中的“q”(降序)索引实现排序。

这是我尝试过但没有成功的方法

Question.find({}, function(err, question) {

if (err)
  res.send(err); 

}).sort({'d':-1,'aa.q':-1 }).skip(page).limit(10);

【问题讨论】:

    标签: arrays mongodb mongoose aggregation-framework


    【解决方案1】:

    您始终可以使用$aggregate 和内部$unwind$sort 然后$group

    db.collection.aggregate([
      { $unwind: "$aa" },
      { $sort: { "aa.q": -1 }},
      { $group: {
          _id: "$_id",
          "t": { $first: "$t" },
          "d": { $first: "$d" },
          "aa": { $push: "$aa" }
        }
      }
    ])
    

    working here

    【讨论】:

      猜你喜欢
      • 2018-01-07
      • 2012-02-20
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多