82

データベースとしてMongoを使用しています。私はデータを持っています:

 {
   _id : '123'
   friends: [
     {name: 'allen', emails: [{email: '11111', using: 'true'}]}
   ]
 }

今、私はユーザーの友人の電子メールをモチーフにしたいと思っています'電子メール、その_idは'123'です私は次のように書きます:

db.users.update ({_id: '123'}, {$set: {"friends.0.emails.$.email" : '2222'} })

簡単ですが、メール配列に 2 つ以上のデータがある場合は違います。だから、私の質問は次のとおりです。ネストされたフィールドのデータをどのようにモチーフにできますか---ネストされた配列が2つ以上あるだけですか? ありがとう。

4

5 に答える 5

112

配列にはドット表記を使用する必要があります。

つまり、$更新しようとしている要素の 0 から始まるインデックスに置き換える必要があります。

例えば:

db.users.update ({_id: '123'}, { '$set': {"friends.0.emails.0.email" : '2222'} });

最初の友達の最初のメールを更新し、

db.users.update ({_id: '123'}, { '$set': {"friends.0.emails.1.email" : '2222'} })

最初の友達の 2 番目のメールを更新します。

于 2013-10-26T13:15:36.583 に答える