MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie wähle ich ein Mongo-Filialdokument nach ID mit Mongoose aus?

Gemäß unserer Diskussion haben wir die Grundursache von

gefunden
db.locations.update({ name: 'Starcups' }, 
                    { $push: { 
                         reviews: { 
                            author: 'Simon Holmes', 
                            id: ObjectId(), // issue is here
                            rating: 5, ... } } })

id: ObjectId() erstellt id Feld im Filialdokument und ohne _id Feld in den reviews Unterdokument.

id() Methode wird verwendet, um documentArrays eine spezielle id zu geben Methode zum Suchen eines Dokuments anhand seiner _id . Da es keine _id gibt Feld in reviews document array, es funktioniert nicht gut.

Bitte entfernen Sie id: ObjectId() aus Ihrem Code.