Operacje CRUD MongoDB (insert
, update
, find
, remove
) wszystkie działają wyłącznie na dokumentach najwyższego poziomu — chociaż oczywiście można filtrować według pól w dokumentach osadzonych. Dokumenty osadzone są zawsze zwracane w dokumencie nadrzędnym.
_id
pole jest wymaganym polem dokumentu nadrzędnego i zazwyczaj nie jest konieczne ani nie występuje w dokumentach osadzonych. Jeśli potrzebujesz unikalnego identyfikatora, z pewnością możesz je utworzyć i możesz użyć _id
pole do ich przechowywania, jeśli jest to wygodne dla twojego kodu lub twojego modelu mentalnego; częściej są one nazywane po tym, co reprezentują (np. „nazwa użytkownika”, „inny klucz systemowy” itp.). Ani sam MongoDB, ani żaden ze sterowników nie wypełni automatycznie _id
pole z wyjątkiem dokumentu najwyższego poziomu.
W szczególności w Javie, jeśli chcesz wygenerować wartości ObjectId dla _id
w osadzonych dokumentach, możesz to zrobić za pomocą:
someEmbeddedDoc._id = new ObjectId();