Zgodnie z naszą dyskusją znaleźliśmy główną przyczynę przez
db.locations.update({ name: 'Starcups' },
{ $push: {
reviews: {
author: 'Simon Holmes',
id: ObjectId(), // issue is here
rating: 5, ... } } })
id: ObjectId() utworzy id pole w poddokumencie i bez _id pole w reviews poddokument.
id()
Metoda służy do tego, że documentArrays mają specjalny id metoda wyszukiwania dokumentu po jego _id . Ponieważ nie ma _id pole w reviews tablica dokumentów, nie działa dobrze.
Usuń id: ObjectId() z Twojego kodu.