【发布时间】:2014-10-05 17:24:52
【问题描述】:
我希望能够查询数组属性为空或长度为零的文档。我试过使用 $or,比如
{ things : { $or : [null, { $size : 0 } ] } }
但 MongoDB 抱怨它:
{ "$err" : "invalid operator: $or", "code" : 10068 }
似乎 MongoDB 不想在数组属性上使用 $and 或 $or。我认为简单地查询 { things : { $size : 0 } } 会返回具有零长度的非空数组和空数组的文档,但这似乎不是真的。
如何发出查询以查找数组属性为空或长度为零的所有文档?
【问题讨论】:
-
好的,根据到目前为止的两个回答,我认为我的问题并没有我可以说的那么清楚。
things实际上是文档的属性,而不是文档本身。 IOW,如果集合是'雅皮士',那么我想查询非典型雅皮士,即没有任何东西的雅皮士,这三种状态都意味着一个雅皮士没有东西:带有nothings属性、具有things属性的雅皮士文档为null,以及具有things属性为[]的雅皮士文档(一个空数组)。这会让问题更清楚吗?