2016-07-20 2 views
1

Ich habe ein Benutzerprofil mit einfachen Schema und collection2 erstellt. Wenn der Name oder die E-Mail-Adresse aktualisiert wird, möchte ich das Meteor-Benutzerprofil aktualisieren. Wenn ich versuche, die E-Mail-Adresse im Meteor-Benutzerprofil festzulegen, wird sie nicht aktualisiert. Dies ist die problematische Linie:Aktualisieren Sie die E-Mail-Adresse im Meteor Benutzerprofil

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

Kann mir jemand zeigen, wie man das Meteor-Benutzerprofil aktualisiert?

Vielen Dank.

Antwort

2

Sie müssen das Array-Element basierend auf dem vorherigen Wert der E-Mail-Adresse in Ihrem Selektor auswählen.

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

Sie können zugleich das verified Feld auf false gesetzt, wenn die neue E-Mail-Adresse nicht überprüft wird. Dann sende die Bestätigungs-E-Mail.

+0

Das ist nicht 'funktioniert "Option Nicht unterstützte Projektion: $ gesetzt: {emails.address: \" [email protected] \ "}"' – massimosgrelli

+0

sollte es E-Mails sein .0.Adresse –

+0

Danke dafür, sehr alte Antwort! –

1

dies auch gearbeitet:

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

Ja, das funktioniert, aber nur, wenn nur eine E-Mail-Adresse im Array ist. –

+0

Ja, im Moment ist das alles. Ich werde es trotzdem tun, danke für deine Hilfe – user1532669

Verwandte Themen