Hoạt động CRUD trong MongoDB (insert
, update
, find
, remove
) tất cả đều hoạt động độc quyền trên các tài liệu cấp cao nhất - mặc dù tất nhiên bạn có thể lọc theo các trường trong tài liệu nhúng. Các tài liệu được nhúng luôn được trả lại trong tài liệu gốc.
_id
trường là trường bắt buộc của tài liệu mẹ và thường không cần thiết hoặc không có trong tài liệu nhúng. Nếu bạn yêu cầu một số nhận dạng duy nhất, bạn chắc chắn có thể tạo chúng và bạn có thể sử dụng _id
trường để lưu trữ chúng nếu điều đó thuận tiện cho mã của bạn hoặc mô hình tinh thần của bạn; thông thường hơn, chúng được đặt tên theo những gì chúng đại diện (ví dụ:"tên người dùng", "otherSystemKey", v.v.). Bản thân MongoDB hay bất kỳ trình điều khiển nào sẽ không tự động điền _id
ngoại trừ trên tài liệu cấp cao nhất.
Cụ thể trong Java, nếu bạn muốn tạo các giá trị ObjectId cho _id
trong tài liệu nhúng, bạn có thể làm như vậy với:
someEmbeddedDoc._id = new ObjectId();