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.