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

Arrays Mongoose-如何从集合中的每个文档检索对象数组?,arrays,json,mongodb,mongoose,Arrays,Json,Mongodb,Mongoose,我的收藏中的每个文档都类似于以下内容(JSON): 我想提取每个玩家的所有比赛,并使用Mongoose按match\u date对它们进行排序,但我不知道如何进行排序 你能帮我一下吗?你可以在下面试试 db.collection.aggregate([ { "$unwind": "$matches" }, { "$sort": { "matches.match_date": 1 }}, { "$group": { "_id": "$_id", "matches": {

我的收藏中的每个文档都类似于以下内容(JSON):

我想提取每个玩家的所有比赛,并使用Mongoose按
match\u date
对它们进行排序,但我不知道如何进行排序


你能帮我一下吗?

你可以在下面试试

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

我收到以下错误:
排序超出了104857600字节的内存限制,但没有选择外部排序。正在中止操作。Pass allowDiskUse:true
修复了它。allowDiskUse(true)
。我还想使用分页(limit()),但只有在成功完成排序之后。你知道怎么做吗?谢谢您可以在此处的
$project
阶段之前使用
$limit
。。。更新答案有没有办法“不分组”结果?我想要所有网球选手的所有网球比赛我找不到你。。。你能问一个关于样本输出的新问题吗。。。我最好用新的答案解释一下
db.collection.aggregate([
  { "$unwind": "$matches" },
  { "$sort": { "matches.match_date": 1 }},
  { "$group": {
    "_id": "$_id",
    "matches": { "$push": "$matches" }
  }},
  { "$limit": 20 },
  { "$project": { "matches": 1, "numberOfMatches": { "$size": "$matches" } }}
])