【发布时间】:2021-04-14 04:48:57
【问题描述】:
我们如何在sails js中编写聚合查询而不是sum和average。
就像我们在 mongoose 中有 Model.aggregate() 方法一样,那么如何使用sails-mongo 完成同样的事情
【问题讨论】:
标签: node.js mongodb mongoose sails.js sails-mongo
我们如何在sails js中编写聚合查询而不是sum和average。
就像我们在 mongoose 中有 Model.aggregate() 方法一样,那么如何使用sails-mongo 完成同样的事情
【问题讨论】:
标签: node.js mongodb mongoose sails.js sails-mongo
您必须使用可用的数据存储管理器才能进行本机查询。聚合不是水线支持的功能。
文档:https://sailsjs.com/documentation/reference/waterline-orm/datastores/manager
这是一个例子:
const db = ModelName.getDatastore().manager;
const rawCollection = db.collection(tableName);
if (!rawCollection)
return res.serverError(
"Could not find tableName collection"
);
return rawCollection
.aggregate(
[
{
$match: {
createdAt: {
$gte: from,
$lte: to,
},
},
},
{ $sort: { createdAt: -1 } },
{
$group: {
},
},
{ $limit: page * limit + limit },
{ $skip: page * limit },
],
{
cursor: {
batchSize: 100,
},
}
)
.toArray((err, result) => {
if (err) return res.serverError(err);
let results = {
items: result,
total: result.length,
};
return res.json(results);
});
将ModelName 和tableName 更改为您需要的。
【讨论】: