我的收藏包含以下记录。
{
"_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。
所以我想跟随输出作为code1和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" }
}
},
]
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句