使用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条记录)。任何人都可以发现这个问题吗?
答案 0 :(得分:1)
我创建了这个虚拟数据来表示模式的骨架:
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"}}])