MongoDB(猫鼬)搜索查询是否包含文本?

时间:2020-06-18 08:00:56

标签: mongodb mongoose

如果数据是

[ 
   { title: "banana awesome" },
   { title: "banana is good" },
   { title: "banana is good hahaha" },
   { title: "banana is delicious" },
]

我想查询“香蕉好”

结果应为:

 [
   { title: "banana is good" },
   { title: "banana is good hahaha" }
 ]

我尝试过的

const searchText = "banana good"

Fruits.find({ title: { $regex: `.*${searchText}.*`} }
Fruits.find({ title: { $regex: searchText }}

两者均不起作用。我该怎么办?

2 个答案:

答案 0 :(得分:0)

在不向查询中添加正则表达式的情况下尝试

const searchText = "banana good"

Fruits.find({ title: /.*${searchText}.*/ }

答案 1 :(得分:0)

我相信您的正则表达式不正确。我也不是正则表达式专家。但是,这应该可行。

master.eligibility=true

您必须从给定的字符串中构建一个像Fruits.find({ title: /banana.+good/i }); 这样的正则表达式字符串。

您正在精确地搜索子字符串/banana.+good/i。但是,数据库中没有这样的子字符串。