我希望匹配所有不包含“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"); });
l0oc07j21#
您可以使用$or查询运算符,对每个条件进行检查:
$or
{ $or: [{ // Check about no Company key Company: { $exists: false } }, { // Check for null Company: null }, { // Check for empty array Company: { $size: 0 } }] }
cpjpxq1n2#
要显示数组中的空值或缺少的值,请使用$map和$cond
$map
$cond
{$map: { input: {$cond: [ {$eq:[ "$field1.field2.value", [] ] }, [], "$field1"]}, as: "check55", in: "$$check55.field2.value" }},
希望这能帮上忙---普拉迪普
abithluo3#
您可以使用以下方法
db.test.find({ "Company.0": { $exists: false } })
它将照顾(所有的条件,你要求):1.公司名称:[]1.公司:空1.缺少公司属性。它将不关心:1.公司:[null,]注意,这里第0个索引存在,尽管它为空。
3条答案
按热度按时间l0oc07j21#
您可以使用
$or
查询运算符,对每个条件进行检查:cpjpxq1n2#
要显示数组中的空值或缺少的值,请使用
$map
和$cond
希望这能帮上忙---普拉迪普
abithluo3#
您可以使用以下方法
它将照顾(所有的条件,你要求):
1.公司名称:[]
1.公司:空
1.缺少公司属性。
它将不关心:
1.公司:[null,]
注意,这里第0个索引存在,尽管它为空。