如果可能的话,我想返回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/