The MongoDB\BSON\ObjectId class

(mongodb >=1.0.0)

Wstęp

BSON type for an » ObjectId. The value consists of 12 bytes, where the first four bytes are a timestamp that reflect the ObjectId's creation. Specifically, the value consists of:

  • a 4-byte value representing the seconds since the Unix epoch,
  • a 5-byte random number unique to a machine and process, and
  • a 3-byte counter, starting with a random value.

In MongoDB, each document stored in a collection requires a unique _id field that acts as a primary key. If an inserted document omits the _id field, the driver automatically generates an ObjectId for the _id field.

Using ObjectIds for the _id field provides the following additional benefits:

  • The creation time of the ObjectId may be accessed using the MongoDB\BSON\ObjectId::getTimestamp() method.
  • Sorting on an _id field that stores ObjectId values is roughly equivalent to sorting by creation time.

Krótki opis klasy

final MongoDB\BSON\ObjectId implements MongoDB\BSON\ObjectIdInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Metody */
final public __construct ([ string $id ] )
final public getTimestamp ( void ) : int
final public jsonSerialize ( void ) : mixed
final public serialize ( void ) : string
final public __toString ( void ) : string
final public unserialize ( string $serialized ) : void
}

Rejestr zmian

Wersja Opis
1.3.0

Renamed from MongoDB\BSON\ObjectID to MongoDB\BSON\ObjectId.

Implements MongoDB\BSON\ObjectIdInterface.

1.2.0 Implements Serializable and JsonSerializable.

Spis treści

add a note add a note

User Contributed Notes 2 notes

up
20
naip1984 at gmail dot com
6 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
3
Mike T
5 years ago
Worth noting this will throw an InvalidArgumentException if string is not in the correct format
To Top