Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 按字符串长度筛选聚合_Mongodb_Mongodb Query_Aggregation Framework - Fatal编程技术网

Mongodb 按字符串长度筛选聚合

Mongodb 按字符串长度筛选聚合,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我已执行以下查询: 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:

我已执行以下查询:

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”。

这里有一个运算符可能会有所帮助:

尝试:


您可以只捕获
conso
长度和过滤器。鉴于上述or条件,我们最终得出以下结论:

// previous pipeline here, then:
{$addFields: {slen: {$strLenBytes: "$_id.conso"}}}
,{$match: {$or: [ {"_id.conso": {$ne: "x"}}, {slen: {$gt: 1}} ] }}
您能否使用该链接显示
Indiv2
集合中的一些示例文档以及您的预期输出?
// previous pipeline here, then:
{$addFields: {slen: {$strLenBytes: "$_id.conso"}}}
,{$match: {$or: [ {"_id.conso": {$ne: "x"}}, {slen: {$gt: 1}} ] }}