我有表格中的数据
{userid: 123,
actiontype: 'loggedin',
timestamp: date-time}
我想运行一个查询,该查询将针对 userid 和 actiontype 的唯一组合对数据进行分组,并返回具有最新时间戳值的文档。
有什么办法可以做到这一点吗? 目前我正在考虑进行查找,然后将返回值放入数组(python 和 pymongo)中,然后在那里进行操作。但是,我觉得直接在 mongodb 上执行此操作会更加优雅/高效。
最佳答案
您可以使用 Mongo group function. 来完成以下代码显示了如何执行此操作。
db.stack.group(
{
keyf: function(doc) {
return {
userid : doc.userid,
actiontype : doc.actiontype
};
},
reduce: function(obj,prev) {
if (prev.maxdate < obj.timestamp) {
prev.maxdate = obj.timestamp;
}
},
initial: {maxdate:0}
});
关于mongodb 获取分组的最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339630/