Javascript Mongoose-基于枚举值的聚合$match
我有一个mongoose聚合,我得到的对象如下所示: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.
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 }}
])
您的结果文档应该是什么样的?