使用按位运算在 mongodb 中进行查询

Suj*_*jan 5 bitwise-operators mongodb nosql mongodb-query

我需要在 MongoDB 中进行这样的查询:

db.collection.find( { $where : "(this.type & some_num) ^ some_num == 0"} ) 
Run Code Online (Sandbox Code Playgroud)

Some_num 是一个变量,它可以是任何整数。

我在这里阅读了文档, 其中说 Javascript 查询会减慢执行速度,并且它不能使用索引并且需要进行表扫描。

上述查询的替代方法是什么?

Sal*_*ali 0

我很难理解您到底想通过这个查询实现什么目的。构造 this.type 在 JS 中无效,因此我假设您正在尝试从当前文档中获取字段类型。然后由于某种原因,您正在对某些变量进行按位 & 操作。最后,您将结果与相同的变量进行异或。

要么我解释错误,要么你做了一些非常奇怪的事情。

无论如何,您将能够在 mognodb 2.6 中使用按位异或运算符,或者您现在可以尝试实验版本 2.5。