如何转换 MongoDB 查询并使用索引
Posted
技术标签:
【中文标题】如何转换 MongoDB 查询并使用索引【英文标题】:How to cast a MongoDB query and use Index 【发布时间】:2014-12-27 19:42:08 【问题描述】:我有一个 sql 查询,我想将其转换为 MongoDB 并仍然使用索引。这是sql查询
SELECT * FROM "Data1" WHERE age > Cast('12' as int)
根据SO这个回答,上面的查询可以转换为:
db.test.find("this.age > 12")
但是,使用此语法不会使用任何索引。我想知道 MonoDB 是否已解决此问题。
【问题讨论】:
这应该可以工作:db.test.find(age: $gt: '12') 【参考方案1】:您需要使用$gt 运算符来使用索引。
db.test.find(age:$gt:12)
字段age
应该被索引。
我想知道这个问题是否已针对 MongoDB 修复。
仍然无法实现。
文档说,如果你需要使用java脚本进行评估和选择文档,你需要使用$where操作符。但它不会使用索引。
db.test.find( $where: "this.age>12" );
来自文档,
$where 评估 javascript,不能利用索引;
因此,只要查询条件被评估为 Java 脚本,它就永远不能使用索引。
【讨论】:
怎么做:count =12; db.test.find(age:$gt: count)以上是关于如何转换 MongoDB 查询并使用索引的主要内容,如果未能解决你的问题,请参考以下文章