MongoDB ObjectId
Dalam bab sebelumnya kami telah menggunakan ID objek MongoDB (ObjectId).
Dalam bab ini, kita akan memahami struktur ObjectId.
ObjectId ialah data jenis BSON 12 bait dengan format berikut:
4 bait pertama mewakili cap masa
3 bait seterusnya ialah kod pengenalan mesin
Dua bait seterusnya terdiri daripada id proses (PID)
Tiga bait terakhir ialah nombor rawak.
Dokumen yang disimpan dalam MongoDB mesti mempunyai kunci "_id". Nilai kunci ini boleh daripada sebarang jenis, dan lalai ialah objek ObjectId.
Dalam koleksi, setiap dokumen mempunyai nilai "_id" unik untuk memastikan setiap dokumen dalam koleksi boleh dikenal pasti secara unik.
Sebab utama MongoDB menggunakan ObjectId dan bukannya kaedah lain yang lebih konvensional (seperti kunci utama yang ditingkatkan secara automatik) adalah kerana dalam berbilang Menyegerakkan dan secara automatik meningkatkan nilai kunci utama pada pelayan adalah sukar dan memakan masa.
Buat ObjectId baharu
Gunakan kod berikut untuk menjana ObjectId baharu:
>newObjectId = ObjectId()
Pernyataan di atas mengembalikan id terjana unik berikut:
ObjectId("5349b4ddd2781d08c09890f3")
Anda juga boleh menggunakan id yang dijana untuk menggantikan ObjectId yang dijana secara automatik oleh MongoDB:
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
Cap masa bagi dokumen yang dibuat
Memandangkan ObjectId menyimpan cap masa 4-bait, Jadi anda tidak perlu menyimpan medan cap masa untuk dokumen anda, anda boleh mendapatkan masa penciptaan dokumen melalui fungsi getTimestamp:
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
Kod di atas akan mengembalikan masa penciptaan dokumen dalam format ISO:
ISODate("2014-04-12T21:49:17Z")
Tukar ObjectId kepada String
Dalam sesetengah kes, anda mungkin perlu menukar ObjectId kepada format rentetan. Anda boleh menggunakan kod berikut:
>new ObjectId().str
Kod di atas akan mengembalikan rentetan dalam format Panduan:
5349b4ddd2781d08c09890f3