SORU
13 ŞUBAT 2012, PAZARTESİ


Nasıl MongoDB tüm belgeler için bir alanı yeniden adlandırmak miyim?

5000 kayıtları, her içeren bir şey ile MongoDB bir koleksiyon benzer var varsayarsak:

{
"occupation":"Doctor",
"name": {
   "first":"Jimmy",
   "additional":"Smith"
}

Tarlada "" "" tüm belgeler? son ek yeniden adlandırmak için kolay bir yoludur Belgelerinde $rename operatör gördüm ama gerçekten bir alt alan belirleme konusunda net değilim.

CEVAP
13 ŞUBAT 2012, PAZARTESİ


Kullanabilirsiniz:

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

Yukarıdaki yöntemi *5: { upsert:false, multi:true }. multi:true güncelleme gerekirtümkayıtlarınız.

Ya da eski yolu kullanabilirsiniz:

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);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HouseholdHacker

    HouseholdHac

    6 Kasım 2007
  • Jonnyriddlin1

    Jonnyriddlin

    4 Ocak 2007
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009