La clase MongoDB\BSON\ObjectId

(mongodb >=1.0.0)

Introducción

Tipo BSON para un » ObjectId. El valor se compone de 12 bytes, donde los primeros cuatro bytes son un timestamp que refleja la creación del ObjectId. Más precisamente, el valor se compone de :

  • un valor de 4 bytes representando los segundos desde la época UNIX,
  • un número aleatorio de 5 bytes único a una máquina y un proceso, y
  • un contador de 3 bytes, comenzando por un valor aleatorio.

En MongoDB, cada documento almacenado en una colección requiere un campo _id único que actúa como clave primaria. Si un documento insertado omite el campo _id, la extensión genera automáticamente un ObjectId para el campo _id.

El uso de ObjectId para el campo _id proporciona las siguientes ventajas adicionales:

  • La hora de creación del ObjectId puede ser accedida utilizando el método MongoDB\BSON\ObjectId::getTimestamp().
  • La ordenación en un campo _id que almacena valores ObjectId equivale aproximadamente a la ordenación por fecha de creación.

Sinopsis de la Clase

final class MongoDB\BSON\ObjectId implements MongoDB\BSON\ObjectIdInterface, MongoDB\BSON\Type, JsonSerializable, Stringable {
/* Métodos */
final public __construct(?string $id = null)
final public getTimestamp(): int
final public jsonSerialize(): mixed
final public __toString(): string
}

Historial de cambios

Versión Descripción
PECL mongodb 2.0.0

This class no longer implements the Serializable interface.

PECL mongodb 1.12.0 Implementa Stringable para PHP 8.0+.
PECL mongodb 1.3.0

Renombrado de MongoDB\BSON\ObjectID a MongoDB\BSON\ObjectId.

Implementa MongoDB\BSON\ObjectIdInterface.

PECL mongodb 1.2.0 Implementa Serializable y JsonSerializable.

Tabla de contenidos

add a note

User Contributed Notes 2 notes

up
28
naip1984 at gmail dot com
7 years ago
I struggled for awhile to identify the way to find() using a ObjectID

This seems to work, I hope this helps someone else out.

$mongoId = '5a2493c33c95a1281836eb6a';

$collection->find(['_id'=> new MongoDB\BSON\ObjectId("$mongoId")]);

I found it here: https://docs.mongodb.com/php-library/current/reference/method/MongoDBCollection-findOne/

Note this is for the PHP library, not the legacy library.
up
8
Mike T
7 years ago
Worth noting this will throw an InvalidArgumentException if string is not in the correct format
To Top