我所有的记录都有一个名为“图片”的字段。该字段是字符串数组。
我现在想要该数组不为空的最新10条记录。
我已经在Google周围搜索了,但是奇怪的是我没有对此找到太多。我已经读过$ where选项,但是我想知道这对本机函数有多慢,以及是否有更好的解决方案。
即使这样,它也不起作用:
ME.find({$where: 'this.pictures.length > 0'}).sort('-created').limit(10).execFind()
不返回任何内容。this.pictures
没有长度位的保留确实有效,但是当然它也返回空记录。
如果您还有没有密钥的文档,则可以使用:
ME.find({ pictures: { $exists: true, $not: {$size: 0} } })
如果涉及$ size,MongoDB不会使用索引,因此这是一个更好的解决方案:
ME.find({ pictures: { $exists: true, $ne: [] } })
从MongoDB 2.6版本开始,您可以与运算符进行比较,$gt
但可能会导致意外的结果(您可以在此答案中找到详细的说明):
ME.find({ pictures: { $gt: [] } })
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句