Node.js MongoDb重复密钥错误

Node.js MongoDb重复密钥错误,node.js,mongodb,Node.js,Mongodb,尝试在MongoDB集合中插入数据时出现此错误 MongoError:E11000重复密钥错误集合:kaa.logs\u 96775772132708234336索引:id重复密钥:{{u id:ObjectId('6001bdc2429b9313d755e106') 这是我的密码: MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("kaa

尝试在MongoDB集合中插入数据时出现此错误

MongoError:E11000重复密钥错误集合:kaa.logs\u 96775772132708234336索引:id重复密钥:{{u id:ObjectId('6001bdc2429b9313d755e106')

这是我的密码:

MongoClient.connect(url, function(err, db) {
        if (err) throw err;

        var dbo = db.db("kaa");

        dbo.collection("logs_96775772132708234336").insertOne(document, function(err, res) {
            if (err) throw err;
            console.log("1 document inserted");
            console.log(res.insertedId);
            db.close();
        });
    });
当我搜索相同的对象id时,我得到的是数据。NodejS Mongo似乎正在创建一个重复的对象ID


非常感谢您的帮助。

我确实怀疑,在插入您的实体文档后,您的实体文档已收到id文件,这导致您再次插入带有该id的文档

插入文档后检查文档

console.log(document._id);
就像mongo文档一样

_id字段

如果文档未指定_id字段,则mongod将添加_id字段并为文档指定唯一的ObjectId 在插入之前。大多数驱动程序创建ObjectId并插入_id 字段,但如果驱动程序 或者应用程序没有

如果文档包含_id字段,_id值必须是唯一的 在集合中,以避免重复的键错误


我以前遇到过类似的错误,解决方法是删除集合本身并重试。

您是说
collectionName.find({u id:ObjectId(“6001bdc2429b9313d755e106”)}
的返回在数据库中为空?不,实际上我得到了一条记录。当数据插入频率非常高时,NodeJs Mongo似乎正在创建重复的ID。驱动程序生成的objectid是唯一的。问题应该在您的业务逻辑中。“问题”的当前状态只是一个语句,表示您试图插入具有相同ID的文档,但它不起作用。如果您需要特定问题的帮助,请完全编辑此问题(包括误导性标题)并提供有效的信息,或者将其废弃,创建一个新的信息,清楚地解释您的问题所在。MongoClient.connect(url,function(err,db){if(err)throw err;var dbo=db.db(“kaa”);dbo.collection(“logs”-96775772132708234336”).insertOne(document,function(err,res){if(err)throw err;console.log(“插入1个document”);console.log(res.insertedId);db.close();});});