Worth noting this will throw an InvalidArgumentException if string is not in the correct format
(mongodb >=1.0.0)
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:
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:
_id
field that stores ObjectId values is roughly equivalent to sorting by creation time.
版本 | 说明 |
---|---|
PECL mongodb 1.3.0 |
Renamed from Implements MongoDB\BSON\ObjectIdInterface. |
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable. |
Worth noting this will throw an InvalidArgumentException if string is not in the correct format
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.