You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB如何查询数组中至少一个元素含指定子串的文档

MongoDB数组元素包含指定子串的查询方案

你之前用$in的方式无法实现需求,因为$in是精确匹配数组元素,只会查找完全等于"apple"的项,而你需要的是匹配包含"apple"子串的元素。以下是两种可行的解决方案:

方法1:直接使用正则表达式

MongoDB支持直接在查询条件中使用正则表达式,会自动匹配数组中符合正则规则的元素:

// 区分大小写匹配包含"apple"子串的元素
let prods = await Product.find({ items: /apple/ });

// 忽略大小写的匹配(可匹配Apple/APPLE等)
let prodsIgnoreCase = await Product.find({ items: /apple/i });

方法2:使用$regex操作符

如果需要更明确的语法,或者结合其他查询选项,可以使用$regex操作符:

// 区分大小写版本
let prodsWithRegex = await Product.find({
  items: { $regex: "apple" }
});

// 忽略大小写版本,通过$options指定"i"标志
let prodsWithRegexIgnoreCase = await Product.find({
  items: { $regex: "apple", $options: "i" }
});

以上两种方法都会匹配所有items数组中至少有一个元素包含"apple"子串的文档,你的示例文档中"apples"和"pineapples"都会被正确匹配到。

内容的提问来源于stack exchange,提问作者ololo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 04:18:13