如何查询MongoDB集合中字段值匹配数组内任意元素的文档?
解决方案
MongoDB 提供了$in查询操作符,专门用于匹配字段值属于指定数组中任意元素的文档,完全适配你的使用场景,正确写法如下:
User.find({ "id": { $in: myArr } })
该写法的优势如下:
- 语法简洁,无需手动拼接多个
$or条件,无论myArr长度多少都可以直接传入使用 - 执行性能优于手动拼接的多条件
$or查询,数据库底层对$in操作符有专门的查询优化 - 数组长度兼容上限更高,MongoDB 默认支持
$in操作符传入的数组内放置数十万级元素,普通抽奖活动的用户量场景完全可以覆盖
补充说明:你之前用到的$or本身是支持两个以上的查询条件的,只是针对同一字段匹配多个值的场景,$in是更符合语法规范的最优实现方案。
内容的提问来源于stack exchange,提问作者Solezano
相关产品推荐
相关产品推荐

