我有一个Node.js应用程序,它使用惟一的it获取大量的JSON数据,然后使用Mongojs将它们插入到MongoDB中。
问题是,在这个庞大的数据数组中,可能存在一些重复的文档!因此,当使用Mongojs插入这些数据时,它会返回一个错误E11000 duplicate key error,并且不会继续插入。
所以我要找的是类似于原生Mongo的continueOnError/keepGoing选项。它将忽略重复项并继续执行insert。
http://mongodb.github.io/node-mongodb-native/api-generated/collection.html#insert
这是我的代码,如果有帮助的话:
var mongojs = require('mongojs'),
dburl = process.env.MONGOHQ_URL || 'mongodb://localhost/test',
db = mongojs(dburl, ['concerts']);
function insertData(data) {
db.concerts.insert(data, {keepGoing: true, safe: true}, function(err, docs){
console.log('err: ' + err + ' docs:' + docs);
if(!err) console.log('data inserted successfully!\n');
});
}
exports.insertData = insertData;在这段代码中,我将option设置为true,但它仍然不起作用(同样的错误)。
有没有什么办法我可以用Mongojs做这件事,或者我必须使用原生mongo?
提前谢谢。
发布于 2013-06-01 20:01:16
这解决了我的问题,以防万一。
db.concerts.insert(data, {continueOnError: true, safe: true}, function(err, docs){
console.log('err: ' + err);
if(!err) console.log('data inserted successfully!\n');
});https://stackoverflow.com/questions/16871474
复制相似问题