0

次のようなドキュメントがあるとします。

{ 
    "_id" : 1, 
    "name": "Homer J. Simpson", 
    "income" : 45000,
    "address": { 
        "street": "742 Evergreen Terrace", 
        "city": "Springfield", 
        "state": "???", 
        "email": "homer@springfield.com", 
        "zipcode": "12345", 
        "country": "USA"
     }
}

また、住所文書の一部のフィールドを更新し (他のフィールドは変更せずに)、新しいフィールドが存在しない場合は次のように挿入します。

{ 
    "address": {
        "email": "homer@gmail.com", 
        "zipcode": "77788", 
        "latitude" : 23.43545, 
        "longitude" : 123.45553
    }
}

アトミック更新を一度に行う方法はありますか、それとも新しいデータのキー/値をループして、.update()それぞれに対して実行する必要がありますか?

4

2 に答える 2

1

$set単一の で複数の埋め込みフィールドをターゲットにするには、ドット表記を a とともに使用しupdateます。

{ "$set": {
    "address.email": "homer@gmail.com", 
    "address.zipcode": "77788", 
    "address.latitude" : 23.43545, 
    "address.longitude" : 123.45553
} }
于 2013-10-01T16:07:54.053 に答える
0

Sergioが言及したように、$setを使用してください。

{address.latitude : "77788"}
于 2013-10-01T15:55:44.750 に答える