我想获取一些文档,其中某个字段可能是$in一些数组(如果设置了过滤器,则为条件查询)。

但是,我还需要无条件检查此相同字段是否为$ne: null。我知道$in: [some values]可用于防止检索null,但是问题在于查询的一部分是基于是否设置过滤器的条件。

是否有更有效的方法来进行以下操作?那会行吗?

db.Parents.fetch({
    childId: { $in: childIds },
    childId: { $ne: null }
});

最佳答案

使用$and运算符

db.Parents.fetch({
    $and:[
      {childId: { $in: childIds }},
      {childId: { $ne: null }}
    ]
});

09-25 17:16