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.