我正在将文档插入mongod db colletion
每个时间的触发日期和事件都会改变,但是如果在任何时间间隔内连续插入它们,我们将收到mongo复制错误。
但是,如果我们要插入带有时间的插入,则会被插入。
var MongoClient = require('mongodb').MongoClient;
var msgObj = {
"event" : "Password expired",
"assignee" : "Test",
"triggerDate" : "06/21/2018 18:44:27", }
var url ="mongodb://127.0.0.1:27017/org_democustomer"
for( var i=0; i<300;i++){
MongoClient.connect(url, function (err, db) {
var connection = db;
var collection = db.collection('events');
// Insert all customer's tickets into document
collection.insert(msgObj, function (err, result) {
if (err) throw err;
connection.close();
});
});
}
那么,ObjectId的创建方式如何? 是根据时间吗? 错误是
MongoError:E11000重复键错误集合: org_mssdemocustomer.testalerts索引: id dup键:{: ObjectId('507f191e810c19729de860ea')} 在Function.MongoError.create(/Users/zessta/Desktop/MSSP/MSSPBackend/msp-backend/siem/node_modules/mongodb-core/lib/error.js:31:11) 在toError(/Users/zessta/Desktop/MSSP/MSSPBackend/msp-backend/siem/node_modules/mongodb/lib/utils.js:139:22) 在/Users/zessta/Desktop/MSSP/MSSPBackend/msp-backend/siem/node_modules/mongodb/lib/collection.js:668:23 在handleCallback(/Users/zessta/Desktop/MSSP/MSSPBackend/msp-backend/siem/node_modules/mongodb/lib/utils.js:120:56) 在resultHandler(/Users/zessta/Desktop/MSSP/MSSPBackend/msp-backend/siem/node_modules/mongodb/lib/bulk/ordered.js:421:14) 在/Users/zessta/Desktop/MSSP/MSSPBackend/msp-backend/siem/node_modules/mongodb-core/lib/connection/pool.js:469:18 在_combinedTickCallback(内部/进程/next_tick.js:73:7) 在process._tickCallback(internal / process / next_tick.js:104:9)
如何为立即插入生成唯一的ID
答案 0 :(得分:0)
ObjectId值。 12字节的ObjectId值包含:
这是您的代码,可以正常工作。
var MongoClient = require('mongodb').MongoClient;
var ObjectID = require('mongodb').ObjectID
var msgObj = {
"event": "Password expired",
"assignee": "Test",
"triggerDate": "06/21/2018 18:44:27"
}
var url = "mongodb://127.0.0.1:27017"
MongoClient.connect(url, function(err, db) {
if (err) {
console.log(err);
}
for (var i = 0; i < 300; i++) {
//var connection = db;
//var collection = db.collection('events');
var dbo = db.db("org_democustomer1");
// Insert all customer's tickets into document
msgObj._id = new ObjectID();
dbo.collection("events").insert(msgObj, function(err, result) {
if (err) throw err;
});
}
db.close();
});