sql >> Base de Datos >  >> NoSQL >> MongoDB

Los objetos incrustados de MongoDB no tienen ID (valor nulo)

Operaciones MongoDB CRUD (insert , update , find , remove ) funcionan exclusivamente en documentos de nivel superior, aunque, por supuesto, puede filtrar por campos en documentos incrustados. Los documentos incrustados siempre se devuelven dentro del documento principal.

El _id El campo es un campo obligatorio del documento principal y, por lo general, no es necesario ni está presente en los documentos incrustados. Si necesita un identificador único, ciertamente puede crearlo y puede usar el _id campo para almacenarlos si eso es conveniente para su código o su modelo mental; más típicamente, reciben el nombre de lo que representan (por ejemplo, "nombre de usuario", "otraClavedelSistema", etc.). Ni MongoDB en sí, ni ninguno de los controladores completará automáticamente un _id excepto en el documento de nivel superior.

Específicamente en Java, si desea generar valores ObjectId para el _id campo en documentos incrustados, puede hacerlo con:

someEmbeddedDoc._id = new ObjectId();