簡體   English   中英

如何向現有用戶添加新字段

[英]How to add new fields to existing users

我有很多事情-過去幾周我一直在開發的流星應用程序終於上線了。 但是,要進行更新,我需要在用戶個人資料中添加一個字段。

我認為用下面的代碼圍住一個方法會起作用:

updateUsrs_ResetHelps: function(){
  if(Meteor.users.update({}, {
    $set: {
      'profile.helps': []
    }
  }))
    console.log("All users profile updated : helps reset");
  else
    throw new Meteor.Error(500, 'Error 500: updateUsrs_ResetHelps', 
      'the update couldn\'t be performed');
}

問題是我的用戶有經典的Meteor.accounts文檔,電子郵件,_id,服務,配置文件等...,但是在配置文件中,他們沒有.helps字段。 我需要創建它。

對於將來的用戶,我已經修改了帳戶創建功能,以便在他們注冊時添加此字段,但是對於已經注冊的200個用戶,我確實需要一個解決方案。

編輯:可能是因為更新中的選擇器嗎? 一個簡單的{}選擇器是否可以一次更新集合中的所有用戶/文檔?

從Mongo文檔( http://docs.mongodb.org/manual/reference/method/db.collection.update/ ):

默認情況下,update()方法更新單個文檔。 設置“多參數”以更新所有符合查詢條件的文檔。

如果您已經為新用戶添加了該字段,而只需要修復舊用戶,那么為什么不直接在數據庫中一次呢?

運行meteor以啟動您的應用程序,然后運行meteor mongo連接到數據庫。 然后對字段不存在的記錄運行更新。 就像是:

db.users.update({"profile.helps": {"$exists": false}}, {"$set": {"profile.helps": []}}, {multi:true})

Mongo文檔將multi參數指定為:

可選的。 如果設置為true,則更新滿足查詢條件的多個文檔。 如果設置為false,則更新一個文檔。 默認值為false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM