标签: sql mongodb postgresql
我有一个sql查询,我想转换为MongoDB并仍然使用索引。这是sql查询
SELECT * FROM "Data1" WHERE age > Cast('12' as int)
根据此SO回答,上述查询可以转换为:
db.test.find("this.age > 12")
但是,使用此语法不会使用任何索引。我想知道MonoDB已修复此问题。
答案 0 :(得分:1)
您需要使用$gt运算符来使用索引。
db.test.find({age:{$gt:12}})
字段age应编入索引。
age
我想知道MongoDB已修复此问题。
仍然无法实现。
文档说,如果您需要使用java脚本进行评估并选择文档,则需要使用$where运算符。但它不会使用索引。
db.test.find( { $where: "this.age>12" } );
来自文档,
$ where评估JavaScript并且无法利用索引;
因此,无论何时将查询条件评估为Java脚本,它都不能使用索引。