集团(在)mongoose?

我已经在shell中构build了我想要的查询,但是在Mongoose中编写它时遇到了麻烦。

db.commentstreams.group({ key: { page_id: true }, reduce: function(obj,prev) { prev.num_comments += obj.num_comments }, initial: { num_comments: 0 } }) 

我对Mongoose语法有点困惑; 也许有人可以在这一点上有所了解。 非常感谢。

  • 使用聚合对嵌套列进行sorting
  • 无法将值返回到mongoose / mongodb和nodejs的响应中
  • 从mongo获取不同的坐标
  • 使用javascript / node.js在mongodb中查找带有另一个条件的对象的最早date
  • 什么是ensureIndex?
  • MongooseJS - 如何find最大值的元素?
  • mongoose不保存数据
  • mongoose更新总是给我TypeError:不能设置未定义的属性'__v'
  • 根据这个职位 :

     Model.find({}, [fields], {'group': 'FIELD'}, function(err, logs) { ... }); 

    不幸的是,我们似乎缺乏这方面的文件。

    MapReduce应该是正确的方法,但是如果你不分割,你的查询不会超过10k条logging。

    您可以通过moongoose访问任何node-mongodb-native函数,所以它看起来像这样:

     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); }); 

    node-mongodb-native source: https : //github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/collection.js#L1165

    MongoDB组doc: http : //www.mongodb.org/display/DOCS/Aggregation#Aggregation-Group

    如果你正在尝试使用Mongoose进行分组,也许你最好在node.js / expresspath中查看这个Mongoose组查询

    Mongoose似乎并不支持聚合。