首页 > 解决方案 > 如何增强mongodb搜索

问题描述

我有一个这样的数据集:

{
  _id: ObjectId("5b51a905c2ee6718204e945d"),
  post: "hello apple"
},
{
  _id: ObjectId("5b51a905c2ee6718204e945e"),
  post: "he is going to buy a cup of coffee"
}

现在我想创建一个搜索,为此,我编写了查询,即

db.Collection.find({
  post: { $regex: req.body.searchterm, $options: "i" }
}).then(data => {
  console.log(data);
})
.catch(error => {
  console.log(error)
});

这工作正常。假设我搜索“a”,那么它将返回第一个和第二个对象。但我想要一个单独写的结果,而不是在字符之间出现。

我只希望第二个对象返回单独编写 a 的位置,但不会出现在第一个对象上,因为 a 存在于苹果上。

关于如何增强这一点的任何建议。任何建议都非常感谢。

标签: regexmongodb

解决方案


正如塞尔吉奥建议的那样,使用 regex \ba\b。它只会单独匹配a

正则表达式在线演示


推荐阅读