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

Hvordan kan jeg omdøbe et felt for alle dokumenter i MongoDB?

Du kan bruge:

db.foo.update({}, {$rename:{"name.additional":"name.last"}}, false, true);

Eller for bare at opdatere de dokumenter, der indeholder egenskaben:

db.foo.update({"name.additional": {$exists: true}}, {$rename:{"name.additional":"name.last"}}, false, true);

false, true i metoden ovenfor er:{ upsert:false, multi:true } . Du skal bruge multi:true for at opdatere alle dine optegnelser.

Eller du kan bruge den tidligere måde:

remap = function (x) {
  if (x.additional){
    db.foo.update({_id:x._id}, {$set:{"name.last":x.name.additional}, $unset:{"name.additional":1}});
  }
}

db.foo.find().forEach(remap);

I MongoDB 3.2 kan du også bruge

db.students.updateMany( {}, { $rename: { "oldname": "newname" } } )

Den generelle syntaks for dette er

db.collection.updateMany(filter, update, options)

https://docs.mongodb.com/manual/reference/method/db.collection.updateMany/



  1. KortReducer blanding og sortering i Hadoop

  2. python flask hvordan man sender en dynamisk parameter til en dekoratør

  3. Caching af tweets ved hjælp af Node.js, Redis og Socket.io

  4. Brug flere DB'er med et Redis Lua-script?