У меня есть коллекция в моей базе данных MongoDB, скажем, с несколькими ключами. Теперь я хочу обновить эту коллекцию новым полем. Итак, вот что у меня есть до сих пор:
def confirm(hash: String) = {
val myDb = dbConn.db(dbName)
val userCollection = myDb[BSONCollection]("user")
val selector = BSONDocument(idKey -> BSONObjectID(hash))
val modifier = BSONDocument(
"$set" -> BSONDocument("date" -> BSONString(now.toString)) // Line 1
)
val command = FindAndModify(
userCollection.name,
selector,
Update(modifier, fetchNewObject = true)
)
myDb.command(command)
.map { user => // Line 2
Right(bidList)
}.recover {
case LastError(ok,err, code, errMsg, _) =>
Left(ServiceError(errMsg.getOrElse("failure!")))
}
}
У меня есть две проблемы с приведенной выше реализацией:
В строке 1: обновит ли это существующий документ новым полем с именем дата?
В строке 2: сопоставление myDb.command(command) дает мне Option[BSONDocument], но я удивлен, что у меня есть неявное преобразование в области видимости. Поэтому я ожидал, что он вернет Option[User]!
.findAndUpdate
. - person cchantep   schedule 24.10.2015.result
для получения результата в соответствии с доступными читателями BSON. - person cchantep   schedule 24.10.2015.findAndUpdate
(не.findAndModify
). 2. Сказать, что API недостаточно просто потому, что API не является чистым, просто неконструктивно. Вы можете разработать усовершенствование. - person cchantep   schedule 24.10.2015