2012-04-21 5 views
0

Comment remplacer third_id dans cet enregistrement (un seul document doit être mis à jour)?Comment remplacer un objet dans un enregistrement MongoDB?

> db.collection.find({"_id" : ObjectId("4f90cf0cd4bea011930001a3"), "first_id": ObjectId("4edf056800126757c000000f")}) { "second_id" : ObjectId("4f355e430012671d77000ec0"), "third_id" : ObjectId("4edf056800126757c000000f"), "note" : "blah-blah"} 

Comme ça?

db.collection.update({ {"_id" : ObjectId("4f90cf0cd4bea011930001a3"), "third_id" : ObjectId("5edf056800126757c000000f")}, , true) 

Tutoriel dit: db.collection.update (critères, objNew, upsert, multi)

Arguments:

critères - requête qui sélectionne l'enregistrement à mettre à jour;

objNew - objet mis à jour ou opérateurs $ (par exemple, inc $) qui manipule l'objet

upsert - si cela devrait être une opération "upsert"; c'est-à-dire, si les enregistrements n'existent pas, insérez-en un. Upsert n'insère qu'un seul document. Multi - indique si tous les documents correspondant aux critères doivent être mis à jour plutôt qu'un seul. Peut être utile avec les opérateurs $ ci-dessous.

Répondre

1

Puisque vous ne souhaitez que mettre à jour un seul document et vous n'êtes pas essayer de faire une upsert et que vous ne souhaitez pas remplacer tout le document, mais un seul champ, vous pouvez faire:

db.collection.update({ {"_id" : ObjectId("4f90cf0cd4bea011930001a3"), 
         { $set : {"third_id" : ObjectId("5edf056800126757c000000f") } }) 
+0

Merci ! Ça a marché. – Tyra

Questions connexes