返回mongodb上嵌入文档中的键的最大值

时间:2012-12-04 14:59:36

标签: javascript mongodb

给出示例文档

{
  "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
     }
   ]
},

如何在mongo自己的shell上返回 user_id 具有最高位置并且它们各自的索引? 在这种情况下,结果将是:

  1. user_id =“user 2”
  2. position = 570
  3. index = 2
  4. 谢谢!

1 个答案:

答案 0 :(得分:3)

使用aggregate命令$unwind每个文档的log数组,然后position db.test.aggregate({$unwind: '$log'}, {$sort: {'log.position': -1}}, {$limit: 1}) 生成的文档:

{{1}}