Mongodb 获取新插入的文档BSONObjectID
我需要返回新插入的对象。我读到我可以生成自己的id,但情况可能并非如此Mongodb 获取新插入的文档BSONObjectID,mongodb,scala,playframework,reactivemongo,Mongodb,Scala,Playframework,Reactivemongo,我需要返回新插入的对象。我读到我可以生成自己的id,但情况可能并非如此 def create(repo: String) = Action.async(parse.json) { implicit req => val id = BSONObjectID.generate collection(repo).insert($("_id " -> id)).map { last => if(last.ok) Ok(Json.toJson(
def create(repo: String) = Action.async(parse.json) { implicit req =>
val id = BSONObjectID.generate
collection(repo).insert($("_id " -> id)).map { last =>
if(last.ok)
Ok(Json.toJson($("_id"->id)++$("success"->true)))
else
BadRequest($("success"->false))
}
}
我正在生成这样的记录:
{
"_id": {
"$oid": "556dfb2021c76e3b1c566915"
},
"_id ": {
"$oid": "556dfb1f5f00006100d4a0bc"
}
}
您不应该手动生成MongoDB
\u id
,除非您确定它们是唯一的,否则您必须在代码中处理重复密钥异常
如果插入的新文档没有\u id
,MongoDB将在插入过程中为您生成一个文档。然后,如果您想取回此\u id
,可以请求MongoDB取回您的文档以及新创建的\u id
通常,驱动程序会自动为您处理此部分。只是单击错误,我错误地在_id上添加了空格,这导致了所有问题您说“如果您想要回这个_id,您可以请求MongoDB用您新创建的_id取回您的文档”,但您具体怎么做?关键是,您不知道进行此类查询的
\u id