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);
    });

ModelNametableName 更改为您需要的内容。