[英]Meteor: Accounts.createUser throws exception: meteor.roles.$name_1 dup key
嘗試將新用戶添加到注冊時的users
集合。
在Meteor的客戶端,我調用服務器方法將用戶添加到users
集合
Meteor.methods({
createUserServer : function (user) {
// On server-side, Accounts.createUser is essentially
// blocking (Fibers): it waits for the user to be
// created, and then returns its newly generated id.
try {
var userId = Accounts.createUser(user)
console.log('user ID: ' , userId);
return { success:true , message : userId }
} catch (e) {
console.log('Meteor Exception: ',e);
return { success : false , message : e.reason }
}
}
})
這種添加僅在第一次users
集合上很好地發生,但是在那之后,我得到了這個異常:
Meteor Exception: { [MongoError: insertDocument :: caused by :: 11000 E11000 duplicate key error index: meteor.roles.$name_1 dup key: { : null }] stack: [Getter] }
我檢查了數據庫上的roles
集合,發現只有一個文檔:
db.roles.find()
->返回-> { "_id" : "whef5ZW8sBchDWBuH", "userId" : "WNM7gYDusa2dJY8wd", "roles" : [ ] }
我不確定這是什么類型的問題?
我知道了。
由於某種原因, name
文檔被制成索引並且是唯一的,這導致了上述沖突,通過刪除該索引,現在一切正常:
Meteor.roles._ensureIndex('name', {unique: 1})
現在我很高興:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.