Mongodb php 获取新文档的 id?

2022-08-30 13:13:50

创建文档:

$db->collection->insert($content);
// $newDocID = ???

我正在尝试获取新文档的 ID。如何获取?谢谢。


答案 1

根据文档,您传递到的数组将使用字段进行修改:insert_id

$db->collection->insert($content);
$newDocID = $content['_id'];

答案 2

您也可以在插入之前获得_id。只需添加_id字段即可使用新的MongoId ie进行文档。

$content['_id'] = new MongoId();
$db->collection->insert($content);

这也有很好的好处:

  1. 你不需要像ZagNut在以前的答案中发布的评论中的fsync标志。因此,您无需等待DB的回复。
  2. 您无需实际向 DB 插入任何内容即可获取 id。因此,您可以准备一些相关对象,然后插入或不插入它们 - 有点像mongo不支持的事务(还吗?
  3. 您实际上可以在应用程序中生成id,而不是在db中生成id,因此您可以在插入之前或之后做任何您想做的事情。

推荐