MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Os objetos incorporados do MongoDB não têm ID (valor nulo)


Operações CRUD do MongoDB (insert , update , find , remove ) operam exclusivamente em documentos de nível superior - embora, é claro, você possa filtrar por campos em documentos incorporados. Documentos incorporados são sempre retornados dentro do documento pai.

O _id field é um campo obrigatório do documento pai e normalmente não é necessário ou está presente em documentos incorporados. Se você precisar de um identificador exclusivo, certamente poderá criá-los e poderá usar o _id campo para armazená-los se for conveniente para seu código ou seu modelo mental; mais tipicamente, eles são nomeados de acordo com o que eles representam (por exemplo, "username", "otherSystemKey", etc). Nem o próprio MongoDB, nem qualquer um dos drivers preencherão automaticamente um _id campo, exceto no documento de nível superior.

Especificamente em Java, se você deseja gerar valores ObjectId para o _id campo em documentos incorporados, você pode fazer isso com:
someEmbeddedDoc._id = new ObjectId();