一尘不染

环回上的MongoDB聚合

node.js

如何获得Loopback PersistedModel的总和?

似乎没有有关如何实现该目标的文档

如果可能的话,我想避免不得不查找所有行并将其汇总到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集合上手动运行聚合查询?


阅读 226

收藏
2020-07-07

共1个答案

一尘不染

最终设法使其工作。大多数示例都忽略了这一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);
  });
});
2020-07-07