2016-03-29 23 views
0
label : { 
    field1 : { .....}, 
    field2 : {.....} 
} 
db.collection.update({_id:"objectId"},{$set : label}) 

Birden fileds ile tek bir koleksiyonu var ve ben field2 uzaklaştırmanın olmadan field1 güncellemek istiyorum, bu mümkün mü? mongodb Saha Seviye Güncellemeler

{ 
    "_id" : ObjectId("56fa03....."), 
    "categories" : { 
     "category_name" : { 
      "en" : "Category Name", 
      "dk" : "Category Name DK" 
     }, 
     "color" : { "en" : "Color", "dk" : "Color DK" } 
    } 
} 

Örneğin

için

Burada rengini uzaklaştırmanın olmadan category_name güncellemek istiyorum. Bir kayıttaki tek bir alanı1 nasıl güncellerim? (V 3.2) belgeleri göre

+2

Ne sorduğunuzu açıklar mısınız? Tam olarak "Field2 değerini okumadan alan1 güncellemek istiyorum" ile ne demek istiyorsunuz? –

+0

'{ \t "_ID": { \t \t "category_name": { \t \t \t "tr": "Kategori ismi", ("56fa03 ....."), \t "kategoriler" Nesne Kimliği \t \t \t "dk": "Kategori Adı DK" \t \t}, \t \t "renkli": { \t \t \t "tr": "renk", \t \t \t "dk": "Renk DK" \t \t} \t} \t} 'İşte i ilişkin ek bağlam sağlayan bu kod soruya cevap olsa da' color' .. –

cevap

0
db.getCollection('CollectionName') 
    .update("_id" : "objectId", 
     {$set : {"label.field1" : "value of field 1"}}) 

:

update() yöntemi ya belge, mevcut belirli alanları değiştirir ya da tamamen varolan bir belgeyi değiştirir.

Katıştırılmış bir belgeyi veya diziyi genel olarak güncelleştirmek için, alan için değiştirme değerini belirtin. Bir gömülü belgede veya bir dizideki belirli alanları güncelleştirmek için sahadan

belirtmek için nokta işaretini kullanın.

+0

okumadan 'category_name' güncellemek istiyorum _why_ ve/veya _how_ bu kodun yanıtı, uzun vadeli değerini önemli ölçüde artıracaktır. Lütfen cevabınızı, bazı açıklamalarını eklemek için düzenleyin. –

+0

tamamlandı. @TobySpeight – Soren