在MongoDB中查找最新对象

时间:2015-04-24 13:24:47

标签: mongodb go mongodb-query

我在MongoDB中有以下形式的数据:

 {
            "_id" : 154,
            "record_id" : "001280000033x54AAA",
            "jsonData" : "",
            "user_id" : 1,
            "userName" : "abc@xyz.com",
            "backup_no" : 1
 }


 {
            "_id" : 155,
            "record_id" : "001280000033x54AAA",
            "jsonData" : "",
            "user_id" : 1,
            "userName" : "abc@xyz.com",
            "backup_no" : 2
 }
  ...

我想根据' user_id',' userName'来检索数据,但是如果在较低的' backup_no'中存在具有相同record_id的记录。然后我需要选择具有最高backup_no的记录。

我试图聚合record_id然后查询,但我无法找到解决方案。

由于

2 个答案:

答案 0 :(得分:1)

使用mongo MATCH,您可以在查询下方检查结果:

aggregation

答案 1 :(得分:0)

- (void)viewDidLayoutSubviews
{
    NSLog(@"viewDidLayoutSubviews");
    [super viewDidLayoutSubviews];
    [self.myCameraView updatePreviewLayer];
}

你可以简单地按backup_no降序排序,然后忽略除了每个不同record_id的第一条记录以外的所有记录吗? MongoDB $orderby

db.collection.aggregate([{
  $group: {
    _id: "$record_id",
    user_id: {
      $last: "$user_id"
    },
    userName: {
      $last: "$userName"
    },
    backup_no: {
      $max: "$backup_no"
    }
  }
}])