Ketika saya memasukkan beberapa dokumen ke dalam koleksi (tanpa ObjectID) mongoDB menambahkan ObjectIDnya sendiri. Show Saya ingin meminta dokumen dengan ObjectID yang unik.
Ini tidak bekerja dengan awalan MongoID atau ObjectID di depan '4e49fd8269fd873c0a000000'. Apa cara yang tepat untuk query oleh ObjectID dengan mongoDB di PHP? Cukup yakin Anda harus menggunakan objek
Catatan pada halaman Querying sedikit tumpul tetapi tidak menyebutkan ...
Saya pikir sekarang perubahan API ke
berdasarkan jawaban Phil. Untuk MongoDB\Driver\Manager, versi modern dari MongoDB, Anda dapat mempertimbangkan kode kerja berikut:
Untuk tujuan pengujian:
Dengan alcaeus/mongo-php-adapter (di bawah php 7), diperlukan untuk mengonversi Dalam beberapa bab pertama kita telah menggunakan MongoDB objek Id (ObjectId). Pada bagian ini, kita akan melihat struktur ObjectId. ObjectId BSON adalah tipe data 12-byte, memiliki format berikut:
dokumen MongoDB disimpan harus ada "_id" kunci. Nilai kunci ini dapat jenis, default adalah objek ObjectId. Dalam satu set dalam setiap dokumen memiliki unik "_id" nilai, untuk memastikan koleksi dalam setiap dokumen dapat diidentifikasi secara unik. MongoDB menggunakan ObjectId, tetapi pendekatan bukan alasan utama lain yang lebih konvensional (seperti kunci utama auto-increment), karena nilai kunci primer secara otomatis meningkat sinkronisasi di beberapa server juga memakan waktu dan tenaga. Buat ObjectId baruGunakan kode berikut untuk menghasilkan ObjectId baru: >newObjectId = ObjectId() Pernyataan di atas mengembalikan berikut dihasilkan unik id: ObjectId("5349b4ddd2781d08c09890f3") Anda juga dapat menggunakan id yang dihasilkan bukan MongoDB secara otomatis ObjectId: >myObjectId = ObjectId("5349b4ddd2781d08c09890f4") dokumen penciptaan timestampSejak ObjectId disimpan dalam empat byte dari waktu yang tertera, sehingga Anda tidak perlu menyimpan bidang timestamp untuk dokumen Anda, Anda dapat membuat waktu untuk mendapatkan dokumen dengan fungsi getTimestamp: >ObjectId("5349b4ddd2781d08c09890f4").getTimestamp() Kode di atas akan kembali saat ISO pembuatan dokumen Format: ISODate("2014-04-12T21:49:17Z") ObjectId dikonversi ke stringDalam beberapa kasus, Anda mungkin perlu mengkonversi format string ObjectId. Anda dapat menggunakan kode berikut: >new ObjectId().str Kode di atas akan mengembalikan format string Guid :: 5349b4ddd2781d08c09890f3 The MongoDB\BSON\ObjectId class(mongodb >=1.0.0) IntroductionBSON 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 Using ObjectIds for the
Class synopsis/* Methods */ final public unserialize(string } Table of Contents
Mike T ¶ 4 years ago
|