猫鼬-如何从集合中的每个文档中检索对象数组?

时间:2018-09-02 21:03:05

标签: arrays json mongodb mongoose

我的收藏集中的每个文档看起来都像这样(JSON):

{
name: "Roger",
matches: [
    {
        opponent: "Rafael Nadal",
        match_date: 1494536400000
    },
    {
        opponent: "Nick Kyrgyos",
        match_date: 1494557400000
    }
  ]
}

我想提取每个玩家的所有比赛,并使用猫鼬按match_date对它们进行排序,但是我不知道如何。

您能帮我吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下聚合

db.collection.aggregate([
  { "$unwind": "$matches" },
  { "$sort": { "matches.match_date": 1 }},
  { "$group": {
    "_id": "$_id",
    "matches": { "$push": "$matches" }
  }},
  { "$limit": 20 },
  { "$project": { "matches": 1, "numberOfMatches": { "$size": "$matches" } }}
])