programing

새로운 문서의 Mongodb php get id?

iphone6s 2023. 7. 6. 21:58
반응형

새로운 문서의 Mongodb php get id?

문서 작성:

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

새 문서의 ID를 알아내려고 합니다. 어떻게요?감사해요.

문서에 따라 전달하는 배열insert로 수정됩니다._id필드:

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

삽입하기 전에 _id를 얻을 수도 있습니다.새로운 MongoIdie로 문서화할 _id 필드를 추가하기만 하면 됩니다.

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

또한 다음과 같은 이점도 있습니다.

  1. 이전 답변에서 ZagNut이 댓글에 올린 것처럼 fsync 플래그가 필요하지 않습니다.따라서 DB의 회신을 기다릴 필요가 없습니다.
  2. ID를 얻기 위해 DB에 실제로 아무것도 삽입할 필요가 없습니다.따라서 관련 개체를 준비한 다음 삽입하거나 삽입하지 않을 수 있습니다. mongo가 지원하지 않는 트랜잭션(아직?)과 비슷합니다.
  3. 실제로 db가 아닌 애플리케이션에서 id를 생성할 수 있으므로 삽입 전후에 원하는 작업을 수행할 수 있습니다.

이것은 나에게 도움이 됩니다.

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

http://php.net/manual/en/mongocollection.findandmodify.php

언급URL : https://stackoverflow.com/questions/4525556/mongodb-php-get-id-of-new-document

반응형