mongodb - 如何使用mongodb scala驱动程序在insertOne之后返回mongodb ObjectId _id

标签 mongodb scala mongodb-scala

如果可能的话,我想返回insertOne操作后mongo生成的ObjectId()

 def insert(inputDocument : Map[String,Any], databaseName : String, collectionName : String, mongoClient : MongoClient)
  : Future[Completed] = {

    implicit val formats: DefaultFormats.type = DefaultFormats

    val createdAt = new Date()
    val createdAtUnix = System.currentTimeMillis()

    val insertJson = write( inputDocument ++ Map("createdAt" -> createdAt, "createdAtUnix" -> createdAtUnix))

    val database: MongoDatabase = mongoClient.getDatabase(databaseName)
    val collection: MongoCollection[Document] = database.getCollection(collectionName)

    val insertDocument = Document(insertJson)
    collection
      .insertOne(insertDocument)
      .toFuture()

  }

如果不可能,我知道可以生成一个,但如何确定它是唯一的?

最佳答案

要获取插入的对象的 ID,请使用:

collection.insertOne(e).head.map{_ => e._id.toHexString}

如果你想发送你自己的 id 到 mongo 生成它并使用 immutable.Document , 但对于不可变文档,不要忘记始终设置 _id .

要生成唯一 ID,您可以使用“ObjectId.get()”

关于mongodb - 如何使用mongodb scala驱动程序在insertOne之后返回mongodb ObjectId _id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60212000/

相关文章:

c# - 是否有用于 C# 的不错的 MongoDB 框架?

database - 我的数据没有正确保存在我的数据库中

Mongodb - 使用 addToSet 的项目计数

javascript - 任何与 WebSharper 类似的 Scala 作品

mongodb ORing 和 ANDing 查询

mongodb - 通过 ssh 同步 MongoDB

scala - 如何设置自定义配置文件进行测试?

scala - 在 Scalaz 中使用自定义半群类时遇到问题

mongodb - MongoDB observeOn 为什么不使用指定的执行上下文?

indexing - 使用 Salat DAO 确保 MongoDB 的索引