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

Como selecionar um subdocumento mongo por id com mongoose?


De acordo com nossa discussão, encontramos a causa raiz por
db.locations.update({ name: 'Starcups' }, 
                    { $push: { 
                         reviews: { 
                            author: 'Simon Holmes', 
                            id: ObjectId(), // issue is here
                            rating: 5, ... } } })

id: ObjectId() criará id campo no subdocumento e sem _id campo nas reviews subdocumento.

id() é usado para documentArrays ter um id especial método para procurar um documento por seu _id . Como não há _id campo em reviews matriz de documentos, não funciona bem.

Remova id: ObjectId() do seu código.