3

我将sails 与sails-mongo 一起使用,并且希望在集合中执行聚合。我想重用 waterline 使用的连接对象,而不是创建与 mongodb 服务器的全新连接。这个连接对象在某处可用吗?它可以执行任何查询类型吗?

这是基于对水线/帆目前无法进行聚合的理解。

4

2 回答 2

3

听起来您正在寻找.native返回原始节点mongo集合实例的方法。这允许您使用本机 Mongo 方法。例如,如果您是UserSails 中的模型,您将执行以下操作:

User.native(function(err, userCollection) {

    userCollection.aggregate(...)

}

本地 Node Mongo 驱动程序的文档在这里,包括关于如何进行聚合的部分。

.native该方法的文档位于sailsjs.org 上

于 2014-03-29T20:49:54.903 回答
1

只是为了减少搜索和分享经验,这里是 Sails.js 中 mongodb 聚合的工作模板(用于模型用户):

User.native(function(err, collection) {
    if (err) return res.serverError(err);

    collection.aggregate(
      [
        //Your matching and grouping here
        //{ $match : { country : user.country } },
        //{ $group: { _id: "$age", count: { $sum: 1 } } }
      ], function(err, result){
           if (err) return res.serverError(err);
           console.log(result);
         }
    );
});

有关聚合的更多信息:http: //docs.mongodb.org/manual/tutorial/aggregation-with-user-preference-data/

于 2014-06-03T09:33:22.817 回答