Enligt vår diskussion hittade vi grundorsaken av
db.locations.update({ name: 'Starcups' },
{ $push: {
reviews: {
author: 'Simon Holmes',
id: ObjectId(), // issue is here
rating: 5, ... } } })
id: ObjectId()
skapar id
fältet i underdokumentet och utan _id
fältet i reviews
underdokument.
id()
metod används för att documentArrays har ett speciellt id
metod för att slå upp ett dokument med dess _id
. Eftersom det inte finns någon _id
fältet i reviews
document array, fungerar det inte bra.
Ta bort id: ObjectId()
från din kod.