2015-09-24 5 views
1

Мне нужен var (res в следующем), чтобы принять ответ на find(), т.е. MongoCursor, потому что я должен иметь доступ к моему вару внутри if -условий (см. Ниже)Initialize к MongoCursor

Вот что я делаю:

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 = MongoCursor и var res = DBCursor не функционирует.

ответ

2
var res: MongoCursor = _ 

Это присваивает значение по умолчанию res (возможно, null).

Но вам следует избегать использования var везде, где это возможно. Потому что в Скале, если может возвращать результат, что можно непосредственно присвоить результат Рез и т.д .:

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) 
      } 
      } 
+0

'Var Рез: MongoCursor = _' не работают, потому что:' локальные переменные должны быть initialized'. Поэтому я использовал 'null', и это сработало. Я попробую то, что вы посоветуете, когда оно будет работать правильно. Большое спасибо. – wipman

Смежные вопросы