Opérations MongoDB CRUD (insert
, update
, find
, remove
) fonctionnent tous exclusivement sur les documents de niveau supérieur -- bien que vous puissiez bien sûr filtrer par champs dans les documents intégrés. Les documents intégrés sont toujours renvoyés dans le document parent.
Le _id
Le champ est un champ obligatoire du document parent et n'est généralement pas nécessaire ou présent dans les documents intégrés. Si vous avez besoin d'un identifiant unique, vous pouvez certainement les créer, et vous pouvez utiliser le _id
champ pour les stocker si cela convient à votre code ou à votre modèle mental ; plus généralement, ils sont nommés d'après ce qu'ils représentent (par exemple "nom d'utilisateur", "otherSystemKey", etc.). Ni MongoDB lui-même, ni aucun des pilotes ne remplira automatiquement un _id
sauf sur le document de niveau supérieur.
Spécifiquement en Java, si vous souhaitez générer des valeurs ObjectId pour le _id
champ dans les documents intégrés, vous pouvez le faire avec :
someEmbeddedDoc._id = new ObjectId();