【问题标题】:Sort Value in Mongodb在MongoDB中排序值
【发布时间】:2011-03-07 04:57:39
【问题描述】:

我正在用 Mongodb 编写 PHP 应用程序。我可以像这样搜索

$regex='/.*sim.*/i'; 
$find['Word']=new mongoRegex($regex); 
$cursor = $collection->find($find); 

得到这样的结果

同化

传真

强烈的

大将军

密码

柿子

柿子

类似

类似

简单

简单的伤害

更简单

最简单的

简单

但我想排序

1. sim 
2. sim* 
3. *sim* 
4. sim* 

如何编写正则表达式或如何排序?在 MySQL 中,我写了

SELECT * , IF( `Word` = 'sim', 1, IF( `Word` LIKE 'sim%', 2, IF( `Word` LIKE '%sim', 4, 3 ) ) ) AS `sort` FROM `dblist` WHERE `Word` LIKE '%sim%' ORDER BY `sort` , `Word`

现在,我打算将 MySQL 更改为 Mongodb,但问题是搜索结果。我无法在 mongodb 中像 MySQL 一样对结果进行排序。

更新:

我可以在获取数据后进行排序,但问题是分页。结果将超过 1000 次。我不想从数据库中获取所有结果。因此,在数据库中排序并通过分页获取结果。

【问题讨论】:

    标签: sorting mongodb


    【解决方案1】:

    我很确定您必须在获取结果后在自己的代码中进行这种排序。我不知道有任何等同于 SQL 的 AS

    【讨论】:

    • 是的,要进行自定义(基于函数)排序,您必须在客户端中进行。
    【解决方案2】:

    Mongodb 集合有sort 操作,如果您想要更复杂的操作,请在客户端进行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 2019-05-07
      相关资源
      最近更新 更多