Mongodb php获取新文档的id?

ghg1uchk  于 2023-11-16  发布在  PHP
关注(0)|答案(4)|浏览(112)

创建文档:

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

字符串
如何获取新文档的ID?

kyks70gy

kyks70gy1#

根据the docs,传递给insert的数组将被修改为_id字段:

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

字符串

nxagd54h

nxagd54h2#

你也可以在 * insert之前获取_id *。只要用新的Mongolid ie将_id字段添加到文档中。

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

字符串
这也有很好的好处:
1.你不需要像ZagNut在上一个答案中的评论那样使用fsync标志。所以你不需要等待DB的回复。
1.你不需要在DB中插入任何东西来获取id。所以你可以准备一些相关的对象,然后插入或不插入它们-有点像mongo不支持的transactions(还没有?)。
1.实际上,你可以在你的应用程序中生成id,而不是在数据库中,所以你可以在插入之前或之后做任何你想做的事情。

6rqinv9w

6rqinv9w3#

这对我来说很有效:

$insertResult = $collection->insertOne($object);
$id = $insertResult->getInsertedId();

字符串

qltillow

qltillow4#

$newDocument = $db->collection->findAndModify ( $row, $row, null, array('new'=>true,'upsert' => true));
 $strId = $newDocument['_id']->{'$id'};

字符串
http://php.net/manual/en/mongocollection.findandmodify.php

相关问题