我有这个Node.js应用程序,它获取了大量具有唯一ID的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;
在此代码中,我将options设置为true,但仍然无法正常工作(相同的错误)。
无论如何,我可以使用Mongojs做到这一点,还是必须使用native-mongo?
提前致谢。
最佳答案
以防万一,这解决了我的问题。
db.concerts.insert(data, {continueOnError: true, safe: true}, function(err, docs){
console.log('err: ' + err);
if(!err) console.log('data inserted successfully!\n');
});
资料来源:https://github.com/gett/mongojs/issues/58
关于node.js - Mongojs:忽略重复的对象插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16871474/