为什么$ eq在casbah中的行为与$ ne不同?

时间:2014-01-02 17:42:00

标签: scala casbah

为什么$ eq在casbah中的行为与$ ne不同?

import com.mongodb.casbah.Imports._

object O{  
   val x = "user" $ne "bwmcadams"  // Compile fine
   val y = "user" $eq "bwmcadams"  // fails to compile: value = is not a member of string
}

内置:

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>casbah-core_2.10</artifactId>
        <version>2.6.0</version>
    </dependency>

2 个答案:

答案 0 :(得分:2)

在Casbah的更高版本中添加了$eq运算符。尝试将Casbah版本更改为2.6.3。

答案 1 :(得分:0)

而不是$eq,请尝试->(作为常规元组)。 MongoDB中没有$eq运算符:http://docs.mongodb.org/manual/reference/operator/query/ - 相等是默认运算符。

更新:看起来他们已经将这些转换从元组删除到DBObjects。试试常规地图:

val y: DBObject = Map("user" -> "bwmcadams")

更新2:请参阅cmbaxter的答案 - 他们确实在2013年7月添加了$eq作为运算符,但您实际上并不需要使用它。