mysql INSTR like mongodb中的操作

标签 mysql mongodb

这里是 mongo 的新手。

我的 mysql 表中有以下字段:

id (BIGINT), text (LONGTEXT) #this would contain a long description

我希望将我的项目从 Mysql 更改为 MongoDB,但在我这样做之前,有一个非常关键的查询需要解决。

我当前的查询在描述中查找各种术语并返回所有 ID,例如

select id from <table> where instr(<table>.text, 'value') or instr(<table>.text, 'value2)

是否可以在 Mongo 中重新创建它?如果是这样怎么办?现在使用 $or 或 $in 似乎我需要在文档中的某种数组中包含这些特定值。

最佳答案

MongoDB 目前不支持全文搜索。

您可以使用正则表达式,但它会很慢(因为除非索引是根目录,否则不使用索引)。

查询如下:

db.collection.find({ $or: [{description:/value1/}, {description:/value2/}] })

您可以进行一些预处理,将每个单词插入可搜索的关键字数组中,但如果文本真的很长,您可能不想走这条路。

关于mysql INSTR like mongodb中的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8746023/

相关文章:

MySQL 100% CPU 每 12-18 小时

mysql - Laravel 为 DB::raw 查询启用分页

Mysql 正则表达式检索任何字符串类型(字母表或非字母表)之间超过 6 位数字的字符串

javascript - 在javascript中解析复杂的json

mongodb - $near $unwind mongodb 地理空间

java - "No property exists found for type"... 将 QueryDslPredicateExecutor 与 MongoDB 和 Spring-Data 一起使用时

php - 将一些数据反序列化为数组

mysql - 是否可以创建一个 mysql 触发器,在一天中的特定时间将一个表的行插入到另一个表中?

mongodb - 如何更新 mongo 控制台中的日期字段?

node.js - 如何在 Mongo 中为数组的元素定义唯一索引