regex - 如何增强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 存在于苹果上。
关于如何增强这一点的任何建议。任何建议都非常感谢。
解决方案
正如塞尔吉奥建议的那样,使用 regex \ba\b
。它只会单独匹配a
推荐阅读
- html - 当我添加一个固定位置的 SVG 时,我的按钮上的表单和悬停状态停止工作
- three.js - Three.js 模型在调用 computeVertexNormals 后变黑?
- shell - Docker 容器需要很长时间才能通过 shell 脚本启动
- button - 自动热键重新映射表面音量按钮
- azure-cosmosdb-mongoapi - 使用 mongodb api 插入后的 CosmosDB 延迟
- r - 在 R 中使用 gsub 清理推文
- javascript - bulkDelete 方法未按预期工作
- deep-learning - 对于错误的训练案例,将学习率设置为负数
- python - 使用 loc 从单独的表中填充数据框
- asp.net - 子目录中所有文件的 Azure 访问令牌