json - 获取 null,$sum 聚合 - Mongo

标签 json node.js mongodb mongoose aggregation-framework

谁能告诉我为什么在尝试按供应商 ID 汇总广告系列集合中的预算值时会得到 []?

这是我在数据库中的文档 - Campaign Collection

{
"_id" : ObjectId("5acf6ca923cdca5be18518cf"),
"vendorID" : ObjectId("5acf11eaeab7b52d8403ac17"),
"bookingID" : ObjectId("5acf6c9123cdca5be18518ce"),
"listingID" : ObjectId("5acf6c4d23cdca5be18518cd"),
"budget" : 200000,
"date" : "Thu Apr 12 2018 17:26:49 GMT+0300 (EAT)",
"__v" : 0
}

这是我正在使用的路由器 block

router.get('/campaign_sum/:vendorID', (req, res, next) => {
Campaign.aggregate([
    { $match : { "vendorID" : req.params.vendorID } },
    { 
        $group: {
            _id: null,
            total: { $sum: "$budget" }
        }
    }
], (err, value) => {
    res.json(value);
});
});

最佳答案

首先需要这样的 Mongoose :

var Mongoose = require('mongoose');

然后使用:

{ $match : { "vendorID" :  Mongoose.Types.ObjectId(req.params.vendorID)} }

而不是:

{ $match : { "vendorID" : req.params.vendorID } }

关于json - 获取 null,$sum 聚合 - Mongo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49800059/

相关文章:

javascript - jQuery getJson 函数内填充的数组范围

java - 应为 BEGIN_ARRAY,但在第 1 行第 1 列处为 STRING : getting JSON from PHP to Java with Gson

android - 在django中解析json数组

javascript - 将 php 数组编码为 js 变量缺少一些数据?

javascript - 如何从函数中设置 process.env?

javascript - 带有 EJS 的 Node.js Express 项目中的 MySQL SUM 问题

node.js - 为什么我不能运行两个 node.js AWS opsworks 层?

javascript - (AZURE cosmosDB/mongoDB) 更新数组中对象的特定元素的字段

MongoDB 数据消失

python - 如何在AWS ECS上的Flask/MongoDB中设置环境变量?