Podle naší diskuse jsme hlavní příčinu našli
db.locations.update({ name: 'Starcups' },
{ $push: {
reviews: {
author: 'Simon Holmes',
id: ObjectId(), // issue is here
rating: 5, ... } } })
id: ObjectId() vytvoří id pole ve vnořeném dokumentu a bez _id pole v reviews vnořený dokument.
id()
metoda se používá k documentArrays mají speciální id metoda pro vyhledání dokumentu podle jeho _id . Protože neexistuje žádné _id pole v reviews document array, nefunguje dobře.
Odstraňte prosím id: ObjectId() z vašeho kódu.