Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 获取新插入的文档BSONObjectID_Mongodb_Scala_Playframework_Reactivemongo - Fatal编程技术网

Mongodb 获取新插入的文档BSONObjectID

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(

我需要返回新插入的对象。我读到我可以生成自己的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"
    }
}

您不应该手动生成MongoDB
\u id
,除非您确定它们是唯一的,否则您必须在代码中处理重复密钥异常

如果插入的新文档没有
\u id
,MongoDB将在插入过程中为您生成一个文档。然后,如果您想取回此
\u id
,可以请求MongoDB取回您的文档以及新创建的
\u id


通常,驱动程序会自动为您处理此部分。

只是单击错误,我错误地在_id上添加了空格,这导致了所有问题

您说“如果您想要回这个_id,您可以请求MongoDB用您新创建的_id取回您的文档”,但您具体怎么做?关键是,您不知道进行此类查询的
\u id