[英]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.