Javascript 收集。在Meteor中插入问题?

Javascript 收集。在Meteor中插入问题?,javascript,meteor,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({

我正在尝试将信息插入到集合中,此时出现如下错误:

错误:

[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的新手。所以我不知道这件事。所以请帮帮我。

问题 此错误表示:

  • Dcare\u user.UserId
    上有唯一索引
  • Dcare\u user
    集合中存在一个
    UserId
    等于
    null
    的文档
  • 您正在尝试插入一个新文档,该文档的
    UserId
    等于
    null
看起来是在未使用的字段上创建了唯一索引

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


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

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

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

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

1) 什么是用户ID?你如何定义它?2) 您是否以某种方式在Meteor之外修改了数据库?UserId是最终用户手动输入的数字。而不是通过Meteor mongo修改和插入一些记录。@Hubert OG
$ meteor mongo
> db.Dcare_user.dropIndex({UserId:1});