Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Javascript Mongoose-基于枚举值的聚合$match_Javascript_Mongodb_Mongoose_Aggregation Framework - Fatal编程技术网

Javascript Mongoose-基于枚举值的聚合$match

Javascript Mongoose-基于枚举值的聚合$match,javascript,mongodb,mongoose,aggregation-framework,Javascript,Mongodb,Mongoose,Aggregation Framework,我有一个mongoose聚合,我得到的对象如下所示: foods: { fruits: { apple: 'NONE', banana: null, pearl: 'INCLUDED' } } 水果可以有4个值:null、NONE、include、EXTRA 我的目标是使$match/filter在此聚合中匹配,以便能够过滤掉null和'NONE'值 有没有这样做的选择 就像在聚合中一样,我有这样一个: { $match: 'foods.

我有一个mongoose聚合,我得到的对象如下所示:

foods: {
  fruits: {
    apple: 'NONE',
    banana: null,
    pearl: 'INCLUDED'
  }
}
水果可以有4个值:null、NONE、include、EXTRA

我的目标是使$match/filter在此聚合中匹配,以便能够过滤掉null和'NONE'值

有没有这样做的选择

就像在聚合中一样,我有这样一个:

    {
        $match: 'foods.fruits.pearl',
    }

然后取回pearl具有“包含”或“额外”值的对象?

您可以在mongodb3.4.4及更高版本中的聚合下方进行尝试

这里有一些未知键,它们的值分别为
NONE
null
,因此,可以使用聚合将键生成值,并可以轻松地使用它们

db.collection.aggregate([
  { "$addFields": {
    "data": { "$objectToArray": "$foods.fruits" }
  }},
  { "$match": { "data.v": { "$in": [ "NONE", null ] } } },
  { "$project": { "data": 0 }}
])

您的结果文档应该是什么样的?