MongoDB sails js 中的聚合查询
MongoDB aggregation queries in sails js
我们如何在 sails js 中编写除求和和平均值之外的聚合查询。
就像我们在 mongoose 中有 Model.aggregate()
方法一样,那么如何使用 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
更改为您需要的内容。
我们如何在 sails js 中编写除求和和平均值之外的聚合查询。
就像我们在 mongoose 中有 Model.aggregate()
方法一样,那么如何使用 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
更改为您需要的内容。