在Node.js上抑制MongoDB唯一错误

时间:2013-12-10 09:53:39

标签: javascript node.js mongodb

我正在运行一个带有continueOnError的批量插入,这样我就可以将一个文档数组插入到具有唯一约束的集合中;添加通过的文档,忽略失败的文档。

然而,尽管有continueOnError标志,Mongo仍然会返回错误;这使得我使用的框架认为存在问题。我知道如何抑制所有错误,但这个批量插入只是众多操作中的一个,我仍然需要看到那些错误(请注意,我想看到除此之外的任何其他类型的错误)批量插入也。)

我正在使用Node.js下的官方MongoDB驱动程序;我用ff来控制流量。

如何在不抑制其他错误或中断流量的情况下抑制批量插入的唯一故障?

var mongo_options = {
    collection: { strict: true },
    insert: { w: 1, strict: true },
    insertbulk: { w: 1, strict: true, continueOnError: true, keepGoing: true }
}

var f = ff(this, function () {
    this.connection.collection(table, mongo_options.collection, f.slot());  
}, function (collection) {
    // DON'T SUPPRESS THIS
    collection.insert(data, mongo_options.insert, f.slot());
}, function () {
    this.connection.collection("tags", mongo_options.collection, f.slot()); 
}, function (collection) {
    // SUPPRESS THIS
    collection.insert(tag_array, mongo_options.insertbulk, f.slot());
}).cb(next); // <-- error going out into the world

0 个答案:

没有答案