使用 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
字段,带有一个嵌套的产品数组,其中包含 totalprice
、closedate
和其他一些领域。
肯定有过多的条目(大约 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/