meteor中的collection.insert问题?

时间:2014-04-29 20:34:41

标签: javascript meteor

我试图在此时向集合中插入信息获取错误,如下所示:

错误:

[01:17:33.480] "Error :MongoError: E11000 duplicate key error index: meteor.Dcare_user.$UserId_1 dup key: { : null }"

Collection.js:

Dcare_User = new Meteor.Collection("dcare_user");

Js代码:

var doc = Dcare_User.insert({
         userid : UserId,
         firstname : fname,
         lastname : lname,
         dob : dob,
         address : address,
         phoneno : phno,
         city : city,
         state : state,
         country : country,
         zipcode : zipcode,
         ssn : ssn,
         roletype : permissions,
         isactive : isactive,
}, function( error, result) {  
     if ( error ) console.log ( "Error :"+error.reason ); //info about what went wrong 
     if ( result ) { 
       console.log ( "result="+result );//the _id of new object if successful                        
     }                     
});

我是meteor的新手。所以我对此一无所知。所以请帮助我。

1 个答案:

答案 0 :(得分:2)

问题

此错误表示:

  • Dcare_user.UserId上有唯一索引。
  • Dcare_user集合中存在UserId等于null的文档。
  • 您正在尝试插入UserId等于null
  • 的新文档

看起来在您未使用的字段上创建了唯一索引。

解决方案

您需要删除数据库并重新开始,或者保留数据库并删除索引。以下解决方案假设这是由流星环境为您创建的开发数据库:


删除数据库

如果您希望删除数据库并重新开始,可以从应用程序的根目录在终端中键入以下内容(当流量 不运行时):

$ meteor reset

删除索引

如果您希望删除索引并保留数据,可以通过在应用程序的根目录中键入以下内容连接到mongo shell(当流量 正在运行时):

$ meteor mongo

进入shell后,可以使用以下命令删除索引:

> db.Dcare_user.dropIndex({UserId:1});