如果 mongodb 中的数据为空或为空,则从 $match 中排除

Er *_*mar 8 mongoose mongodb mongodb-query

$matchmongodb.

假设$match在某些情况下我有多个选项,blank或者null在那个阶段我想$match匹配我们文档中的那个字段。

例如

$match:{
   name:'abc',
   age:''  //exclude if blank or null,
   city:'delhi'
}
Run Code Online (Sandbox Code Playgroud)

我只想要匹配namecity字段。如果blanknull可能的话,我希望它从聚合中排除自动。

Vis*_*was 5

因为如果 mongodb 中的数据为空或空,则从 $match 排除的问题标题表明您要排除数据是否为空和空。您应该使用$and匹配条件,如下所示:

db.collection.aggregate({$match:{"name":"abc","city":"delhi","$and":[{"age":{"$ne":""}},{"age":{"$ne":null}}]}} )
Run Code Online (Sandbox Code Playgroud)