如何获取mongodb中每组记录的最新记录
问题描述:
我的收藏夹包含以下记录。如何获取mongodb中每组记录的最新记录
{
"_id" : "58a53f4aca3d39bcf9c3890a",
"code" : 1,
"datetime":"2017-01-01T00:00:00.000Z",
"balance" : 2000
}
{
"_id" : "58a53f4aca3d39bcf9c3890b",
"code" : 2,
"datetime":"2017-01-02T00:00:00.000Z",
"balance" : 3000
}
{
"_id" : "58a53f4aca3d39bcf9c3890c",
"code" : 1,
"datetime":"2017-01-03T00:00:00.000Z",
"balance" : 3000
}
{
"_id" : "58a53f4aca3d39bcf9c3890d",
"code" : 1,
"datetime":"2017-01-04T00:00:00.000Z",
"balance" : 4000
}
{
"_id" : "58a53f4aca3d39bcf9c3890e",
"code" : 2,
"datetime":"2017-01-05T00:00:00.000Z",
"balance" : 7000
}
{
"_id" : "58a53f4aca3d39bcf9c3890f",
"code" : 1,
"datetime":"2017-01-06T00:00:00.000Z",
"balance" : 6000
}
我正在基于代码制作一组记录。根据上述记录,只有2组代码:1和代码:2。
,所以我想以下内容作为编码1的最新记录输出和CODE2
{ "_id" : "58a53f4aca3d39bcf9c3890f", "code" : 1,"datetime":"2017-01-06T00:00:00.000Z", "balance" : 6000 }
{ "_id" : "58a53f4aca3d39bcf9c3890e", "code" : 2,"datetime":"2017-01-05T00:00:00.000Z", "balance" : 7000 }
所以,我怎样才能使查询,这将给我上面的输出?
答
据的MongoDB文档,
聚合操作从多个文档一起组值,并且可以执行各种所分组的数据的操作的返回单个结果
作为解决上述请尝试执行以下查询
db.collection.aggregate(
// Pipeline
[
// Stage 1
{
$group: {
_id:{code:'$code'},
doc:{ "$last": "$$ROOT" }
}
},
]
);
您需要ta添加日期字段来实现此目的,否则您将无法知道哪些文档是最新的 – felix
@felix是的,我有每个记录的日期时间字段,那么我怎么能得到该输出。 –