【问题标题】:MongoDB aggregation queries in sails jsSails js中的MongoDB聚合查询
【发布时间】:2021-04-14 04:48:57
【问题描述】:

我们如何在sails js中编写聚合查询而不是sum和average。 就像我们在 mongoose 中有 Model.aggregate() 方法一样,那么如何使用sails-mongo 完成同样的事情

【问题讨论】:

    标签: node.js mongodb mongoose sails.js sails-mongo


    【解决方案1】:

    您必须使用可用的数据存储管理器才能进行本机查询。聚合不是水线支持的功能。

    文档: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 更改为您需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-18
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 2015-01-31
      相关资源
      最近更新 更多