2016-07-20 9 views
1

シンプルなスキーマとコレクション2を使用してユーザープロファイルを作成しました。名前または電子メールアドレスが更新された場合、私は流星のユーザープロファイルを更新したいと思います。流星のユーザープロフィールでメールアドレスを設定しようとすると、更新されません。これは、問題のある行である:流星ユーザープロファイルの電子メールアドレスを更新する

Meteor.users.update(Meteor.userId(), {$set: {emails[0].address: pDetails.contactDetails.email}}); 

誰でも流星のユーザープロファイルを更新する方法私を見ることができますか?

ありがとうございます。

答えて

2

セレクタの前の電子メールアドレスの値に基づいて配列要素を選択する必要があります。

Meteor.users.update({ _id: Meteor.userId(), 'emails.address': oldAddress }, 
{ $set: { 'emails.0.address': newAddress }}); 

あなたは、新しいメールアドレスが確認されていない場合は、同時に偽にverifiedフィールドを設定する必要があります。次に、電子メールの確認メールを送信します。

+0

をこれは、 ' "サポートされていない投影オプション:$セット:{emails.address:\" は動作しません[email protected] \ "}"' – massimosgrelli

+0

を、それは電子メールでなければなりません.0.address –

+0

これは、非常に古い答えをありがとう! –

1

これも働いていた:

Meteor.users.update(Meteor.userId(), {$set: {'emails.0.address': pDetails.contactDetails.email, 'profile.name': pDetails.contactDetails.firstName}}); 
+1

はい、これは動作しますが、アレイに電子メールアドレスが1つしかない場合に限ります。 –

+0

ええ、瞬間にそれはすべてあります。とにかく今はやるよ、助けてくれてありがとう – user1532669

関連する問題