Operasi CRUD MongoDB (insert
, update
, find
, remove
) semua beroperasi pada dokumen tingkat atas secara eksklusif -- meskipun tentu saja Anda dapat memfilter menurut bidang dalam dokumen yang disematkan. Dokumen yang disematkan selalu dikembalikan dalam dokumen induk.
_id
bidang adalah bidang yang diperlukan dari dokumen induk, dan biasanya tidak diperlukan atau ada dalam dokumen yang disematkan. Jika Anda memerlukan pengenal unik, Anda pasti dapat membuatnya, dan Anda dapat menggunakan _id
bidang untuk menyimpannya jika itu nyaman untuk kode Anda atau model mental Anda; lebih umum, mereka diberi nama setelah apa yang mereka wakili (misalnya "nama pengguna", "otherSystemKey", dll). Baik MongoDB sendiri, maupun driver mana pun tidak akan secara otomatis mengisi _id
bidang kecuali pada dokumen tingkat atas.
Khususnya di Java, jika Anda ingin menghasilkan nilai ObjectId untuk _id
dalam dokumen yang disematkan, Anda dapat melakukannya dengan:
someEmbeddedDoc._id = new ObjectId();