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);
}
});
});
如何获得 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);
}
});
});