2

我有这个 Node.js 应用程序,它获取大量具有唯一 ID 的 JSON 数据,然后使用 Mongojs 将它们插入到 MongoDB 中。

问题是在这个庞大的数据数组中,可能会有一些重复的文档!所以当使用 Mongojs 插入这些数据时,它会返回错误E11000 duplicate key error并且不会继续插入。

所以我正在寻找的是类似于continueOnError/keepGoing本地 Mongo 的选项。它会忽略重复项并继续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;

在这段代码中,我将选项设置为 true,但它仍然不起作用(同样的错误)。
无论如何我可以用 Mongojs 做到这一点,还是我必须使用 native-mongo?

提前致谢。

4

1 回答 1

2

这解决了我的问题,以防万一。

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

于 2013-06-01T12:01:15.840 回答