tutorial insertone español php mongodb mongodb-php

español - insertone mongodb php



Mongodb php obtener id de documento nuevo? (4)

Creando un documento:

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

Estoy tratando de obtener la identificación del documento nuevo. ¿Cómo? Gracias.


De acuerdo con los documentos, la matriz que pase a insert se modificará con un campo _id :

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


Esto funciona para mí:

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


También puede obtener _id antes de insertar. Simplemente agregue el campo _id para documentar con el nuevo MongoId, es decir.

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

También hay buenos beneficios de esto:

  1. No necesita la bandera fsync como la publicó en comentarios de ZagNut en respuesta anterior. Por lo tanto, no necesita esperar la respuesta de DB.
  2. No necesita insertar nada en DB para obtener su ID. De modo que puede preparar algunos objetos relacionados y luego insertarlos o no insertarlos , algo así como transacciones que mongo no admite (¿todavía?).
  3. De hecho, puede generar id. En su aplicación, no en db, para que pueda hacer lo que quiera antes o después de la inserción.