Según nuestra discusión, encontramos la causa raíz por
db.locations.update({ name: 'Starcups' },
{ $push: {
reviews: {
author: 'Simon Holmes',
id: ObjectId(), // issue is here
rating: 5, ... } } })
id: ObjectId()
creará id
campo en el subdocumento y sin _id
campo en las reviews
subdocumento.
id()
El método se usa para documentArrays tener un id
especial método para buscar un documento por su _id
. Como no hay _id
campo en reviews
matriz de documentos, no funciona bien.
Elimina id: ObjectId()
de su código.