QNA > C > Come Aggiornare Più Di 4 Documenti In Mongodb Usando Un Ciclo For

Come aggiornare più di 4 documenti in MongoDB usando un ciclo for

È possibile aggiornare i documenti in una collezione MongoDB in molti modi a seconda delle esigenze dell'applicazione. Userò un esempio e mostrerò alcuni modi dalla shell di mongo:

Un esempio di collezione di studenti:

  1. { "_id" : ObjectId("5d8f2a2629f213c15536c81f"), "studentNo" : 1, "name" : "Mark" } 
  2. { "_id" : ObjectId("5d8f2a2629f213c15536c820"), "studentNo" : 2, "name" : "Jim" } 
  3. { "_id" : ObjectId("5d8f2a2629f213c15536c821"), "studentNo" : 3, "name" : "Krish" } 
  4. { "_id" : ObjectId("5d8f2a2629f213c15536c822"), "studentNo" : 4, "name" : "Raj" } 
  5. { "_id" : ObjectId("5d8f2a2629f213c15536c823"), "studentNo" : 5, "name" : "Kim" } 

Update the Collection:

{a) The following statements update all the documents in the collection using the updateMany and update methods:

  1. db.students.updateMany( { }, { : { gender: "Male" } } ) 
  2. db.students.update( { }, { : { gender: "Male" } }, { multi: true } ) 

(b) The following code updates documents with studentNo's 1 thru 5 using a for-loop.

  1. for (let i = 1; i < 6; i++) { 
  2. db.students.updateOne( { studentNo: i }, { : { gender: "Male" } } ); 

Using a Cursor:

The db.collection.find() method returns a cursor; and this can be iterated to update the documents in many ways. Note the cursor gets exhausted after iteration is complete.

  1. let cur = db.students.find( { } ); 
  2.  
  3. while (cur.hasNext()) { 
  4. let doc = cur.next(); 
  5. // ... [*] 

[*] For example, you can use this statement to update individual documents within the loop: db.students.updateOne( { studentNo: doc.studentNo }, { : { gender: "Male" } } )

-or-

  1. cur.forEach(doc => // ... [*] ) 

-or-

  1. for (let doc of cur.toArray()) { 
  2. // ... [*] 

NOTE: In addition, mongoDB also has findAndModify and replaceOne methods to update documents. See Update Documents (MongoDB documentation).

Di Aridatha

Perché aggiornare a Python 3.4 da 2.7.8? :: Quanti byte ci sono in 1GB di memoria?
Link utili