我有这个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/

10-09 17:53