MongoDB聚合匹配:排除FieldA/FieldB/FieldC全为null的文档
MongoDB聚合匹配:排除三个字段全为null的文档
需求:匹配包含FieldA、FieldB、FieldC三个属性的文档中,三个字段不全为null的文档(即排除示例中三个字段都为null的第5条,保留第1-4条)。
实现方法1:用$or匹配至少一个字段非null
通过$or指定三个字段中至少有一个字段的值不等于null,直接命中目标文档:
db.collection.aggregate([ { $match: { $or: [ { FieldA: { $ne: null } }, { FieldB: { $ne: null } }, { FieldC: { $ne: null } } ] } } ])
实现方法2:用$not反向排除全null文档
先定义“三个字段全为null”的匹配条件,再通过$not取反,得到反向结果:
db.collection.aggregate([ { $match: { $not: { $and: [ { FieldA: null }, { FieldB: null }, { FieldC: null } ] } } } ])
两种方法都能达成需求,可根据习惯选择使用。
内容的提问来源于stack exchange,提问作者2Fast4YouBR
相关产品推荐
相关产品推荐

