1

嘗試在註冊時將新用戶添加到users集合。

在流星的客戶端,我調用服務器的方法來將用戶添加到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" : [ ] }

我不確定這是什麼類型的問題?

回答

0

我明白了。

出於某種原因,name文件是由作爲指數和獨特的,這引起了上述矛盾,通過刪除索引,工作的事情現在罰款:

Meteor.roles._ensureIndex('name', {unique: 1}) 

現在我很開心:)

Ref:https://github.com/orionjs/orion/issues/239