初始化为MongoCursor

时间:2015-09-24 14:02:20

标签: mongodb scala casbah

我需要一个var(以下为res)来接受find()的答案,即MongoCursor,因为我必须能够访问我的var里面if - 条件(见下文)。

这是我正在做的事情:

var query = new MongoDBObject()
val res = ""

if ("condition_1" == field_1))
{
    query += "field" -> "t"

    if ("condition_2" == "field_2"))
    {
        res = collection.find(q).sort("basic_field" -> 1)
       }
    else if ("condition_2" == "field_2"))
    {
        res = collection.find(q).sort("important_field" -> -1).limit(101)
    }
}

//Perform some operations on res

如何初始化res以接受MongoCursor

var res = MongoCursorvar res = DBCursor无效。

1 个答案:

答案 0 :(得分:2)

var res: MongoCursor = _

这会将默认值分配给res(可能为null)。

但是你应该尽可能避免使用var。 因为在scala中如果可以返回结果,则可以直接将结果分配给res,例如:

val res =  if ("condition_1" == field_1)) {
             query += "field" -> "t"
             if ("condition_2" == "field_2")) {
               collection.find(q).sort("basic_field" -> 1)
             } else if ("condition_2" == "field_2")) {
               collection.find(q).sort("important_field" -> -1).limit(101)
             }
           }