MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come selezionare un sottodocumento mongo per id con mangusta?

Secondo la nostra discussione, abbiamo trovato la causa principale da

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

id: ObjectId() creerà id campo nel documento secondario e senza _id campo nelle reviews documento secondario.

id() viene utilizzato per documentArrays hanno uno speciale id metodo per cercare un documento in base al suo _id . Poiché non esiste un _id campo in reviews array di documenti, non funziona bene.

Rimuovi id: ObjectId() dal tuo codice.