使用node.js在无限循环中插入MongoDB中的文档
我正在修改插入到一个MongoDB relpSet中的文档,并使用mongo oplog和node.js将其插入到另一个MongoDB relpSet中 下面我将介绍如何使用node.js在mongo中插入文档。我编写了一个包装器,将文档作为参数插入使用node.js在无限循环中插入MongoDB中的文档,node.js,mongodb,infinite-loop,mongodb-oplog,Node.js,Mongodb,Infinite Loop,Mongodb Oplog,我正在修改插入到一个MongoDB relpSet中的文档,并使用mongo oplog和node.js将其插入到另一个MongoDB relpSet中 下面我将介绍如何使用node.js在mongo中插入文档。我编写了一个包装器,将文档作为参数插入 function insertMongo(doc) { var insertDocument = function (db, callback) { db.collection('new').insertOne(doc, f
function insertMongo(doc) {
var insertDocument = function (db, callback) {
db.collection('new').insertOne(doc, function (err, result) {
assert.equal(err, null);
console.log("Inserted a document into the collection,", result);
callback();
});
};
MongoClient.connect(url, function (err, db) {
assert.equal(null, err);
insertDocument(db, function () {
db.close();
});
});
}
我调用这个包装函数作为创建要插入的json文档的函数(parseJSON)的回调
function parseJSON(data, callback)
{
var parsedData = {};
// logic to modify JSON taken from oplog
// returns populated parsedData object
callback(parsedData);
}
我在mongo oplog中调用parseJSON,如下所示:
oplog.on('insert', function (doc) {
var a = JSON.parse(JSON.stringify(doc.o));
parseJSON(a, insertMongo);
});
插入文档后,这将进入一个无限循环,输出如下:
o: { _id: 56d99e4a95ed520a0814d87a } }
doc { _id: '56d99e4a95ed520a0814d87a' }
{ ts: { _bsontype: 'Timestamp', low_: 41, high_: 1457102410 },
h: { _bsontype: 'Long', low_: -249545631, high_: 547021855 },
v: 2,
op: 'i',
ns: 'user.new',
o: { _id: 56d99e4a95ed520a0814d87b } }
doc { _id: '56d99e4a95ed520a0814d87b' }
Inserted a document into the collection,
{ ts: { _bsontype: 'Timestamp', low_: 42, high_: 1457102410 },
h: { _bsontype: 'Long', low_: -1687338339, high_: 1742865608 },
v: 2,
op: 'i',
ns: 'user.new',
o: { _id: 56d99e4a95ed520a0814d87c } }
doc { _id: '56d99e4a95ed520a0814d87c' }
Inserted a document into the collection,
感谢您的帮助。谢谢。看起来您正在从onInsert事件校准插入 oplog.on(“插入”,函数(文档){ var a=JSON.parse(JSON.stringify(doc.o)) parseJSON(a,insertMongo) })) 因此,尝试删除此行以进行测试:
parseJSON(a, insertMongo);
我正在修改插入到一个MongoDB中的文档,并将其插入到另一个MongoDB中,因此我必须从onInsert事件调用insert。为了更清楚,我编辑了这个问题。谢谢