Mongodb 猫鼬群?
我已经在shell中构建了我想要的查询,但是在Mongoose中编写它时遇到了困难Mongodb 猫鼬群?,mongodb,node.js,mongoose,Mongodb,Node.js,Mongoose,我已经在shell中构建了我想要的查询,但是在Mongoose中编写它时遇到了困难 db.commentstreams.group({ key: { page_id: true }, reduce: function(obj,prev) { prev.num_comments += obj.num_comments }, initial: { num_comments: 0 } }) 我对猫鼬的语法有点困惑;也许有人能解释一下这件事。非常感谢。根据: 不幸的是,我们似乎缺少这方面的文档 Map
db.commentstreams.group({ key: { page_id: true }, reduce: function(obj,prev) { prev.num_comments += obj.num_comments }, initial: { num_comments: 0 } })
我对猫鼬的语法有点困惑;也许有人能解释一下这件事。非常感谢。根据:
不幸的是,我们似乎缺少这方面的文档 MapReduce应该是正确的方法,但是如果您不进行切分,并且您的查询不会产生超过10k条记录,那么就可以了 您可以通过moongoose访问任何节点mongodb本机函数,因此如下所示:
var group = {
key: {},
cond: {item_id: item_id},
reduce: function(doc, out) {
out.count++;
out.total += doc.value;
},
initial: {
total: 0,
count: 0
},
finalize: function(out) {
out.avg = out.total / out.count;
}
};
Item.collection.group(group.key, group.cond, group.initial, group.reduce, group.finalize, true, function(err, results) {
console.log('group results %j', results);
});
节点mongodb本机源:
MongoDB集团单据:
如果你想用猫鼬来分组,也许你最好看看这个
似乎Mongoose不支持group,而aggregate支持group。我使用了类似的示例,希望这对您有所帮助
Register.aggregate(
[
{
$group: {_id: {campaign: "$campaign"}, quantity: {$sum: 1}}
},
{
$limit: 5
},
{
$sort: {date: -1}
}
], function (err, res) {
console.log(res)
});
这似乎不起作用-它返回所有文档作为一个空查找。$group而不是group?
Register.aggregate(
[
{
$group: {_id: {campaign: "$campaign"}, quantity: {$sum: 1}}
},
{
$limit: 5
},
{
$sort: {date: -1}
}
], function (err, res) {
console.log(res)
});