2017-06-26 6 views
0

を更新しながら、どのように私はこのようなテストコレクションを持つ配列フィールド(真新しい)を挿入します 文書(MongoDBの)

{ 
    "_id" : 1.0, 
    "tags" : [ 
     "technology" 
    ] 
} 

は、今私はアップデート中に別の配列フィールドを挿入しようとしています。例えば

db.TEST.update(
    { _id: 1.0 }, 
    { $set: 
     { 
     "musings.0.rating": 2 
     } 
    } 
) 

がするコレクションを期待:クエリがある

{ 
    "_id" : 1.0, 
    "tags" : [ 
     "technology" 
    ], 
    "musings" : [ 
     { 
      "ratings": 2 
     } 
    ] 
} 

が、それは黙想は、通常のフィールドとしてではなく配列フィールドとして追加された場合、このようにそれを更新します。

{ 
    "_id" : 1.0, 
    "tags" : [ 
     "technology" 
    ], 
    "musings" : { 
     "0" : { 
      "rating" : 2.0 
     } 
    } 
} 

答えて

0

arrayには特別な更新演算子を使用する必要があります。

db.TEST.update({ 
    id: "1.0", 
    $push: { 
    musings: { 
     ratings: 2 
    } 
    } 
}) 

$pushオペレータの配列への追加要素。配列フィールドが存在しない場合は作成されます。

以下は、アレイ更新演算子の詳細です。 https://docs.mongodb.com/manual/reference/operator/update-array/