1

给定示例文档

{
  "user_id": "user 1",
  "log":[
     {
        "index" : 1,
        "position" : 50
     },
     {
        "index" : 2,
        "position" : 70
     },
     {
        "index" : 3,
        "position" : 60
     }
   ]
},
{
  "user_id": "user 2",
  "log":[
     {
        "index" : 1,
        "position" : 150
     },
     {
        "index" : 2,
        "position" : 570
     },
     {
        "index" : 3,
        "position" : 60
     }
   ]
},

如何返回最高位置的user_id及其在 mongo 自己的 shell 上的相应索引?在这种情况下,结果将是:

  1. user_id="用户 2"
  2. 位置 = 570
  3. 指数 = 2

谢谢!

4

1 回答 1

3

对每个文档的数组使用aggregate命令,然后通过以下方式生成文档:$unwindlog$sortposition

db.test.aggregate({$unwind: '$log'}, {$sort: {'log.position': -1}}, {$limit: 1})
于 2012-12-04T15:14:31.730 回答