Mongodb $ elemMatch获取匹配空数组的文档

时间:2020-01-21 10:27:41

标签: mongodb

是否可以使用$elemMatch来检索与空数组匹配的文档?

想象一下以下文件:

{ a: [] }          (A)       
{ a: [{ b: 1 }] }  (B)
{ a: [{ b: 2 }]} } (C)

我想要一个查询,该查询使用$ elemMatch并查找a.b不为1的所有文档。因为在(A)中a.b不存在,因此应将其返回。 但是,对于查询

db.z.find({ a: { $elemMatch: {b: { $ne: 1 }} } })

仅返回(C)。我了解这种行为,因为它们不是a数组中的元素,但是它们是否可以解决此行为,并且还返回(A)?还是另一个mongodb运算符具有此行为?

添加{ b: { $nin: [1, null] } }{ b: { $ne: 1, $exists: true } }无效。

编辑:在$ elemMatch工作之前使用$ or,但我的问题是修改$ elemMatch,而不是在其之前添加运算符。

0 个答案:

没有答案