PHP Conference Japan 2024

MongoDB\BSON\ObjectId 類別

(mongodb >=1.0.0)

簡介

BSON 型別,用於 » ObjectId。該值由 12 個位元組組成,其中前四個位元組是反映 ObjectId 建立時間的時間戳記。具體而言,該值由以下部分組成:

  • 一個 4 位元組的值,表示自 Unix Epoch 以來的秒數,
  • 一個 5 位元組的隨機數,對應於機器和程序唯一,以及
  • 一個 3 位元組的計數器,從一個隨機值開始。

在 MongoDB 中,儲存在集合中的每個文件都需要一個唯一的 _id 欄位,作為主鍵。如果插入的文件省略了 _id 欄位,則擴充功能會自動為 _id 欄位產生一個 ObjectId。

將 ObjectIds 用於 _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