gpt4 book ai didi

mongodb - ReactiveMongo FindAndModify 说明

转载 作者:可可西里 更新时间:2023-11-01 10:00:35 25 4
gpt4 key购买 nike

我的 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]!

最佳答案

你可以看看.findAndUpdateFindAndModifyResult它提供了一个 .result 操作来根据可用的 BSON 阅读器获取结果。

val person: Future[Option[AType]] = collection.findAndUpdate(
BSONDocument("name" -> "James"),
BSONDocument("$set" -> BSONDocument("age" -> 17)),
fetchNewObject = true).map(_.result[AType])

关于mongodb - ReactiveMongo FindAndModify 说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33307215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com