如何在跳过包含重复字段的文档时在MongoDB中一次插入多个文档

时间:2016-02-26 08:09:18

标签: javascript node.js mongodb

我使用本机Node.js MongoDB驱动程序一次插入多个文档。我有一个javascript对象数组(其中每个对象代表一个用户),我使用以下代码。

var col = db.collection('users');
col.insertMany(usersArray, function(err, r) {
    if (err) {
       log('Bulk Insert Error', err);
    } else {
       log('Successful Insert', r.insertedCount);
       db.close();
    }
});

usersArray数组中的每个用户文档都有一个电子邮件字段。我不希望在users集合中已存在包含电子邮件的文档的对象中插入对象,因为我已将电子邮件建模为唯一。应在查询中跳过此类文档。

我知道如果usersArray有一个_id字段(我会使用continueOnError: true),这是可以实现的,但不幸的是我的usersArray来自一个单独的来源。单个插入是低效的,因为我的usersArray可以有超过1000个对象。

我想到的工作是从db中选择所有文档并在我的节点应用程序中仅使用唯一文档重建usersArray,以减少对MongoDB的请求数。有没有办法可以修改collection.insertMany()函数来执行此操作?原始的MongoDB查询也将受到赞赏。

0 个答案:

没有答案
相关问题