我需要返回新插入的对象。我读到我可以生成自己的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($("_id"->id)++$("success"->true)))
else
BadRequest($("success"->false))
}
}
我正在生成这样的记录:
{
"_id": {
"$oid": "556dfb2021c76e3b1c566915"
},
"_id ": {
"$oid": "556dfb1f5f00006100d4a0bc"
}
}
答案 0 :(得分:2)
您不应手动生成MongoDB _id
,除非您确定它们是唯一的,否则您将不得不在代码中处理duplicated key exception
。
如果您插入没有_id
的新文档,MongoDB将在插入过程中为您生成一个文档。然后,如果您希望返回此_id
,则可以请求MongoDB使用新创建的_id
来恢复您的文档。
通常,驱动程序会自动为您处理此部分。
答案 1 :(得分:0)
只是错过了点击,我错误地将空间添加到_id,这导致了所有问题