Walaupun apa yang anda lihat kelihatan seperti rentetan, _id dokumen sebenarnya ialah objek ObjectId, jadi anda mesti menggunakan kaedah ObjectId() untuk menukar rentetan kepada objek sebelum anda boleh menggunakannya
Tambahkan sedikit pengetahuan asas. cengkerang mongo dibina atas dasar JavaScript sama ada V8 atau SpiderMonkey (kedua-duanya telah digunakan sebagai enjin cangkerang mongo), semuanya mengikut EMCAScript dan melaksanakan salah satu subbahagiannya. Ini bermakna semua jenis data dalam cangkerang mestilah jenis data yang dinyatakan dalam piawaian ECMA. Jika anda menyemak piawaian, jenis data JS adalah sangat terhad dan pada asasnya tidak dapat memenuhi keperluan pangkalan data. Jadi dengan BSON, ia menyokong jenis data yang tiada dalam spesifikasi JSON. ObjectID adalah salah satu daripadanya. Jadi masalah yang tinggal ialah bagaimana untuk menyatakan jenis data yang tidak ada di bawah sintaks JS, dan hasilnya ialah ObjectID("...") yang anda lihat.
Walaupun apa yang anda lihat kelihatan seperti rentetan, _id dokumen sebenarnya ialah objek ObjectId, jadi anda mesti menggunakan kaedah
ObjectId()
untuk menukar rentetan kepada objek sebelum anda boleh menggunakannyaTambahkan sedikit pengetahuan asas.
cengkerang mongo dibina atas dasar
JavaScript
sama adaV8
atauSpiderMonkey
(kedua-duanya telah digunakan sebagai enjin cangkerang mongo), semuanya mengikut EMCAScript dan melaksanakan salah satu subbahagiannya. Ini bermakna semua jenis data dalam cangkerang mestilah jenis data yang dinyatakan dalam piawaian ECMA. Jika anda menyemak piawaian, jenis data JS adalah sangat terhad dan pada asasnya tidak dapat memenuhi keperluan pangkalan data. Jadi denganBSON
, ia menyokong jenis data yang tiada dalam spesifikasiJSON
.ObjectID
adalah salah satu daripadanya. Jadi masalah yang tinggal ialah bagaimana untuk menyatakan jenis data yang tidak ada di bawah sintaks JS, dan hasilnya ialahObjectID("...")
yang anda lihat.Kerana _id adalah unik di peringkat global.