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