【发布时间】:2012-03-14 11:26:46
【问题描述】:
我正在将站点的某些部分从 mysql 移动到 mongodb,而将使用 mongodb 的部分是搜索。我有一个问题,如果我在 mysql 中进行此查询
SELECT * FROM table WHERE a1 LIKE '%test%' OR a2 LIKE '%test%'
我将获得超过 10k 的结果。没关系。
如果我在 mongo 中进行此查询
$mongo->find(
array(
'$or' => array(
array('a1' => new MongoRegex('/test/')),
array('a2' => new MongoRegex('/test/'))
)
)
)->count();
我会得到大约 2k 个结果,少 5 倍。这是怎么回事?
每个db中的数据都是一样的。
【问题讨论】:
-
您的 SQL
table和 MongoDB 集合的记录总数是否相同? -
likei 说,同一个数据库,它们完全一样,65k 条记录都有
-
请注意,如果您在 a1/2 上有一个索引,这不会有效地使用索引。
标签: mysql mongodb search sql-like