node.js - 聚合返回空数组

标签 node.js mongodb mongoose aggregation-framework

使用 mongoose 的 Model.aggregate() 返回一个空数组。

我基本上复制了格式,如 here 所示.

var match = {};
var project = {};
    project["_id"] = 0;
    project["products.totalprice"] = 1;
    project["line"] = "$products.closedate";

ThisCollection.aggregate([
    {$match: match},
    {$project: project},
    {$group: {
        _id: "$line"
    }}

], function(err, docs){
    console.log(docs); //!! Returning []
});

我的架构本质上是一个 name_id 字段,带有一个嵌套的产品数组,其中包含 totalpriceclosedate和其他一些领域。

肯定有过多的条目(大约 130,000 条记录)。谁能发现这方面的问题?

最佳答案

我创建了这个虚拟数据来表示您的模式的骨架:

db.data.save({name:"a",products:{totalprice:1,closedate:1}})
db.data.save({name:"b",products:{totalprice:2,closedate:2}})

此查询确实返回了两条记录,并且在为 JavaScript 变量 project 插入 JSON 字符串时与您的查询相同

ThisCollection.aggregate([{$match:{}},{$project:{"_id":0,"products.totalprice":1,line:"$products.closedate"}},{$group:{_id:"$line"}}])

关于node.js - 聚合返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682736/

相关文章:

javascript - mongodb - 没有本地的聚合查找

javascript - 调用 res.render() 后会发生 Mongoose 查找吗?

node.js - 无法使用 Node 运行服务器

javascript - 在 MongoDB 中最后对 Null 值进行排序

javascript - Nodejs - 获取 Mongoose typescript 错误

sql - 如何将数据从SQL Server传输到mongodb(使用mongoose schema进行验证)

html - 如何在ReactJS中渲染静态html页面?

mysql - 使用 include 时 Sequelize 查询仅返回一行

linux - yum 在 aws linux 上安装 mongodb 失败 : no package available

angularjs - angular-meteor 中客户端数据库操作的问题