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.