现在有一组 mongo, 需要寻找某个字段元素个数大于 N 的文档. 有几种简单的做法可以处理这个.
最朴素的方法就是用 where 关键词
db.accommodations.find( { $where: "this.name.length > 1" } );
好处是大于 1 可以用, 小于 3 可以用, 正好等于 x 也可以用.
但是它的局限在于 where 后的内容是 js, 速度会慢一茬.
另一个神奇的方法是 :
db.accommodations.find({'name.1': {$exists: true}})
寻找 name 的 id 为 1 的内容存在的那个.
当然理论上说也可以用它做大于, 大于等于, 小于等于, 等于这些了, 无非就是一个 or 关键词. 不过 query 复杂了点, 可能并不比前面那个快就是.
ref: