Mongo正则表达式|查找文档,其中子数组包含字符串的任何部分

时间:2019-02-26 02:30:22

标签: regex mongodb

我有一个相对简单的Mongo集合(命名为Alerts)-包含多个带有字符串的子数组属性。例如:

{
    "alertName":"Test Alert",
    "sources":["hose"],
    "chemicals":["Lead"]
}

我正在尝试搜索其中包含子数组之一中任何项的输入搜索字符串的此集合。

例如,给定输入字符串“ 软管弯头值包”-如果我要对源子数组进行正则表达式查询-我希望返回上面的文档-因为“软管”来自源数组包含在该字符串中。

db.alerts.find({sources:{'$in':[/Hose Elbow Value Pack X001ACFNEB/i]})
db.alerts.find({sources:{'$in':[/.*Hose Elbow Value Pack X001ACFNEB.*/i]})

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

创建搜索索引。

db.alerts.createIndex( { sources: "text" } )

运行

db.alerts.find( { $text: { $search: "Hose Elbow Value Pack X001ACFNEB" } } )

要获取更多帮助,https://docs.mongodb.com/manual/text-search/