如何转换MongoDB查询并使用索引

时间:2014-12-27 19:42:08

标签: sql mongodb postgresql

我有一个sql查询,我想转换为MongoDB并仍然使用索引。这是sql查询

SELECT * FROM "Data1" WHERE age > Cast('12' as int)

根据此SO回答,上述查询可以转换为:

db.test.find("this.age > 12")

但是,使用此语法不会使用任何索引。我想知道MonoDB已修复此问题。

1 个答案:

答案 0 :(得分:1)

您需要使用$gt运算符来使用索引。

db.test.find({age:{$gt:12}})

字段age应编入索引。

  

我想知道MongoDB已修复此问题。

仍然无法实现。

文档说,如果您需要使用java脚本进行评估并选择文档,则需要使用$where运算符。但它不会使用索引。

db.test.find( { $where: "this.age>12" } );

来自文档,

  

$ where评估JavaScript并且无法利用索引;

因此,无论何时将查询条件评估为Java脚本,它都不能使用索引。