MongoDB\BSON\ObjectId 类

(mongodb >=1.0.0)

介绍

用于 » ObjectId 的 BSON 类型。该值包含 12 个字节,其中前四个字节是时间戳,反映了 ObjectId 的创建时间。具体来说,该值包含

  • 一个 4 字节值,表示自 Unix 纪元以来的秒数,
  • 一个 5 字节随机数,对于机器和进程来说是唯一的,以及
  • 一个 3 字节计数器,从一个随机值开始。

在 MongoDB 中,存储在集合中的每个文档都需要一个唯一的 _id 字段,该字段充当主键。如果插入的文档省略了 _id 字段,则扩展程序会自动为 _id 字段生成一个 ObjectId。

使用 ObjectId 作为 _id 字段提供了以下额外的好处

类概要

/* 方法 */
final public __construct(?string $id = null)
final public getTimestamp(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

变更日志

版本 描述
PECL mongodb 1.12.0 在 PHP 8.0+ 中实现 Stringable
PECL mongodb 1.3.0

MongoDB\BSON\ObjectID 重命名为 MongoDB\BSON\ObjectId

实现 MongoDB\BSON\ObjectIdInterface

PECL mongodb 1.2.0 实现 SerializableJsonSerializable

目录

添加注释

用户贡献注释 2 个注释

28
naip1984 at gmail dot com
6 年前
我努力了很久才找到使用 ObjectID 进行 find() 的方法

这似乎有效,希望这可以帮助其他人。

$mongoId = '5a2493c33c95a1281836eb6a';

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

我在此处找到它:https://docs.mongodb.com/php-library/current/reference/method/MongoDBCollection-findOne/

请注意,这是针对 PHP 库,而不是旧版库。
8
Mike T
6 年前
值得注意的是,如果字符串格式不正确,这将抛出 InvalidArgumentException
To Top