查找数组字段不为空的MongoDB记录

斯凯里特

我所有的记录都有一个名为“图片”的字段。该字段是字符串数组。

我现在想要该数组不为空的最新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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章