MongoDB:检查值是否为null或数组是否为空

3df52oht  于 2023-03-01  发布在  Go
关注(0)|答案(3)|浏览(294)

我希望匹配所有不包含“Company”属性或“Company”值为null或空数组的文档。

User.find({Company: {$in: [null, [] ]}}, function (err, users) {
      if (err) { throw err; }
      console.log(users.length);

}).then(function(doc) {
      console.log("finish User Company");
});
l0oc07j2

l0oc07j21#

您可以使用$or查询运算符,对每个条件进行检查:

{
  $or: [{
    // Check about no Company key
    Company: {
       $exists: false
    }
  }, {
    // Check for null
    Company: null
  }, {
    // Check for empty array
    Company: {
       $size: 0
    }
  }]
}
cpjpxq1n

cpjpxq1n2#

要显示数组中的空值或缺少的值,请使用$map$cond

{$map:   { 
      input: {$cond: [ {$eq:[ "$field1.field2.value", [] ] }, [], "$field1"]}, 
      as: "check55", 
      in: "$$check55.field2.value"
   }},

希望这能帮上忙---普拉迪普

abithluo

abithluo3#

您可以使用以下方法

db.test.find({
  "Company.0": {
      $exists: false
  }
})

它将照顾(所有的条件,你要求):
1.公司名称:[]
1.公司:空
1.缺少公司属性。
它将不关心:
1.公司:[null,]
注意,这里第0个索引存在,尽管它为空。

相关问题