我需要在MongoDB中进行这样的查询:
db.collection.find( { $where : "(this.type & some_num) ^ some_num == 0"} )
Some_num是一个变量,它可以是任何整数。
我在here阅读了文档,该文档说Javascript查询会降低执行速度,也无法使用索引并需要进行表扫描。
上述查询的替代方法是什么?
答案 0 :(得分:1)
在Mongo中最好的做法是将计划在字段中搜索的计算值存储在其中,然后在其上创建索引。否则,你几乎注定要扫描整个系列。
答案 1 :(得分:1)
答案 2 :(得分:0)
我很难理解您要通过此查询实现什么目标。构造this.type在JS中无效,因此我假设您正在尝试从当前文档中获取字段类型。然后出于某种原因你正在做按位&有一些变数。然后最后你用相同的变量对结果进行测试。
我要么解释这个错误,要么就是在做一些非常奇怪的事情。
无论如何,您可以使用bitwise xor operator in mognodb 2.6,或者您现在可以尝试实验版2.5。