我在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然后查询,但我无法找到解决方案。
由于
答案 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"
}
}
}])