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

私は複数のfiledsを持つ単一のコレクションを持っていると私はfield2をremoveingずにfield1を更新したいが、これは可能ですか? MongoDBのフィールドレベルのアップデート

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

については

は、ここで私は色をremoveingずにcategory_nameを更新したいです。レコードの1つのフィールド1を更新するにはどうすればよいですか? (V 3.2)のドキュメントに基づいて

+2

あなたが求めていることを明確にしてもらえますか? 「あなたはfield2を読まずにfield1を更新したい」という意味はどういう意味ですか? –

+0

'{ \t "_id":{ \t \t "CATEGORY_NAME":{ \t \t \t "EN": "カテゴリ名"、 ( "56fa03 .....")、 \t "カテゴリ" のObjectId \t \t \t "DK": "カテゴリ名DK" \t \t}、 \t \t "色":{ \t \t \t "EN": "カラー"、 \t \t \t "DK": "カラーDK" \t \t} \t} \t} 'ここで iはに関する 追加のコンテキストを提供し、このコードは質問に答えるかもしれないが' color' .. –

答えて

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

update()メソッドのいずれかを 文書を既存の特定のフィールドを変更するか、完全に既存のドキュメントを置き換えます。

埋め込みドキュメントまたはアレイ全体を更新するには、フィールドの置換値を と指定します。 埋め込み文書内またはアレイ内の特定のフィールドを更新するために、フィールド

を指定するドット表記を使用します。

+0

を読まず 'category_name'を更新したいです_why_および/または_how_このコード は、その長期的な価値を大幅に改善するでしょう( )。あなたの答えを編集して の説明を追加してください。 –

+0

が完了しました。 @TobySpeight – Soren