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

¿Cómo seleccionar un subdocumento mongo por id con mongoose?

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.