Mongodb找到集合中最大的10个最大数组项

时间:2020-05-31 06:40:20

标签: mongodb mongodb-query aggregation-framework

我的收藏有类似

的项目
[{
  "username": "xxx",
  "wonTournaments": ['111', '123', '1234']
}, {
  "username": "xxx2",
  "wonTournaments": ['111', '123']
}, {
  "username": "xxx3",
  "wonTournaments": ['111', '123', '1234', '11111']
}, {
  "username": "xxx4",
  "wonTournaments": ['111']
}]

我想检索那些wonTournamnts更多的用户的头条信息。谁能告诉我如何在MongoDB中做到这一点。我正在使用云MongoDB地图集。

在上述情况下,最高用户是['xxx3','xxx','xxx2','xxx4']

1 个答案:

答案 0 :(得分:1)

您可以使用db.collection.aggregate()轻松地做到这一点,例如:

db.collection.aggregate([
  { $project: { username: 1, won: { $size: "$wonTournaments" } } },
  { $sort: { "won": -1 } },
  { $limit : 10 }
])

您将需要使用数据库中实际集合的名称更改collection

相关问题