您的位置:首页 > 编程语言 > Go语言

mongo aggregate group, group使用

2016-08-08 14:47 381 查看
var rs = db.fs.files.aggregate([
{$group: {_id: '$metadata.cas', count: {$sum: 1}}},
{$match: {count: {$gt: 1}}}
])

//print(rs);
for(var i in rs.result){
var count = rs.result[i].count;
var id = rs.result[i]._id;

for(var j = 0; j < count - 1; j ++){
db.fs.files.remove({'metadata.cas': id}, true);
}
}


db.runCommand({group: {
ns: 'fs.files',
key: {},
initial: {'result': {}},
$reduce: function(doc, out){
if(doc.metadata.cas in out.result){
out.result[doc.metadata.cas] ++;
}else{
out.result[doc.metadata.cas] = 1;
}
},
finalize: function(out){
for(key in out.result){
if(out.result[key] <= 1){
delete out.result[key];
}
}
}
}})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: