MongoDB查询:返回至少包含指定两个标签的文档
MongoDB查询数组字段同时包含多个指定元素的文档
要查询tags数组同时包含"tagOne"和"tagTwo"(允许包含其他标签)的文档,可以用以下两种方法:
方法1:使用$all操作符(推荐)
$all操作符专门匹配数组字段包含所有指定元素的文档,完全贴合你的需求:
db.getCollection("documents").find({ 'tags': { $all: ['tagOne', 'tagTwo'] }})
执行该查询后,会返回Document2和Document3两个文档,符合预期结果。
方法2:使用$and组合匹配条件
如果需要更灵活的逻辑扩展,也可以用$and组合多个数组匹配条件,效果和$all一致:
db.getCollection("documents").find({ $and: [ { 'tags': 'tagOne' }, { 'tags': 'tagTwo' } ] })
核心区别说明
$in是匹配数组包含任意一个指定元素的文档,所以会返回全部三个文档;$all是匹配数组包含全部指定元素的文档,这正是你需要的逻辑。
内容的提问来源于stack exchange,提问作者fsesmajr
相关产品推荐
相关产品推荐

