MongoDB 环回聚合

MongoDB aggregation on Loopback

如何获得 Loopback PersistedModel 的总和?

似乎没有 documentation 如何实现这一点。

如果可能的话,我想避免必须找到所有行并将其求和到 Node.js。

更新

试用 https://github.com/strongloop/loopback/issues/890

中的示例
var bookCollection = Book.getDataSource().connector.collection(Book.modelName);

我收到一个错误

throw new Error('MongoDB connection is not established');

如何获取集合的句柄以手动 运行 汇总 MongoDB 集合的查询?

终于成功了。大多数示例省略了 connect() 部分。

我的工作代码:

Book.getDataSource().connector.connect(function(err, db) {
  var collection = db.collection('Book');
  var author = Book.getDataSource().ObjectID(authorId);
  collection.aggregate([
    { $match: { authorId: author } },
    { $group: {
      _id: authorId,
     total: { $sum: "$price" }
    }}
  ], function(err, data) {
    if (err) return callback(err);
    return callback(null, data);
  });
});

带环回的聚合查询

Products.getDataSource().connector.connect(function(err, db) {
     var collection = db.collection('Products');
        collection.aggregate(
       [{ $match: { "productCode" : "WIN10-NoOS" } }]
        ).toArray(function(err,servicesData){
              if(err){

               }else{
             cb(null,servicesData);
           }

         });
    });