MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Les objets intégrés MongoDB n'ont pas d'ID (valeur nulle)

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();