Selon notre discussion, nous avons trouvé la cause première en
db.locations.update({ name: 'Starcups' },
{ $push: {
reviews: {
author: 'Simon Holmes',
id: ObjectId(), // issue is here
rating: 5, ... } } })
id: ObjectId() va créer id champ dans le sous-document et sans _id dans le champ reviews sous-document.
id()
la méthode est utilisée pour documentArrays avoir un id spécial méthode pour rechercher un document par son _id . Puisqu'il n'y a pas de _id champ dans reviews tableau de documents, cela ne fonctionne pas bien.
Veuillez supprimer id: ObjectId() à partir de votre code.