Saya berasumsi:
{
g: [
{ _id: ObjectId(), property: '' },
// next
]
}
Jenis struktur untuk pertanyaan ini.
Tidak biasanya. _id
s adalah pengidentifikasi unik untuk entitas. Karena itu jika Anda ingin menambahkan _id
dalam objek sub-dokumen maka Anda mungkin tidak menormalkan data Anda dengan baik dan itu bisa menjadi tanda kelemahan mendasar dalam desain skema Anda.
Sub-dokumen dirancang untuk berisi data berulang untuk dokumen itu, yaitu alamat atau pengguna atau sesuatu.
Itu dikatakan _id
tidak selalu merupakan hal yang buruk untuk ditambahkan. Ambil contoh yang baru saja saya nyatakan dengan alamat. Bayangkan Anda memiliki sistem keranjang belanja dan (karena alasan tertentu) Anda tidak mereplikasi alamat ke dokumen pesanan maka Anda akan menggunakan _id
atau pengenal lain untuk mengeluarkan sub-dokumen itu.
Anda juga harus mempertimbangkan untuk menghubungkan dokumen. Jika itu _id
menjelaskan dokumen lain dan propertinya adalah atribut khusus untuk dokumen itu sehubungan dengan dokumen tertaut itu, maka tidak apa-apa juga.
Sebuah ObjectId
masih cukup besar sehingga perlu dipertimbangkan untuk id yang lebih kecil, kurang unik atau tidak menggunakan _id
sama sekali untuk sub-dokumen.
Untuk indeks, itu tidak benar-benar berfungsi berbeda dengan _id
standar bidang pada dokumen itu sendiri dan indeks unik di seluruh bidang harus berfungsi di seluruh koleksi (bergantung skenario, uji kueri Anda).
NB:MongoDB tidak akan menambahkan _id
ke sub-dokumen untuk Anda.