【发布时间】:2018-04-26 11:49:42
【问题描述】:
我执行了以下查询:
db.Indiv2.aggregate(
{$unwind: '$conso'},
{$group: {_id: {conso:'$conso.nom_commercial', region:"$region"}, sum:
{$sum: 1}}},
{$sort : {sum : -1}},
{$group: {
_id: "$_id.region",
"conso": {
$first: "$_id.conso"
},
"sum": {
$first: "$sum"
},
}},
{$sort : {_id : 1}}
);
按以下格式返回按地区消耗最多的食物:
{
"_id" : {
"conso" : "x",
"region" : 1
},
"sum" : 73226.0
},
{
"_id" : {
"conso" : "x",
"region" : 8
},
"sum" : 25683.0
},
{
"_id" : {
"conso" : "grandlait demi �cr�m� uht",
"region" : 1
},
"sum" : 251.0
}
但是,很多食物没有名字。这些项目被命名为“x”(上面的例子)。我想过滤我的查询以排除此类项目。我正在寻找一个等效的过滤器,它可以过滤长度小于 2 个字符的字符串或过滤字符串“x”。
【问题讨论】:
-
您能否使用edit 链接显示来自
Indiv2集合的一些示例文档以及您的预期输出?
标签: mongodb mongodb-query aggregation-framework