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

时间:2018-07-17 11:00:26

标签: mongodb mongoose

我想匹配所有不包含“公司”属性或“公司”值为空或空数组的文档。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

希望这对您有帮助---深空