【问题标题】:MongoDB insert without duplicatesMongoDB插入没有重复
【发布时间】:2016-11-18 06:03:15
【问题描述】:

现在我正在运行 mongodb,我刚刚意识到,我正在插入集合,但我不确定我是否正在防止重复。这是我插入的方式:

function insertCompanies(companyID, companyURL, companyAppID) {
    MongoClient.connect(url, function(err, db) {
        if (err) {
            console.log(err);
        } else {
            console.log("We are connected");
        }

        var collection = db.collection('Companies');
        var company = {
            "companyProfileID": companyID,
            "url": companyURL,
            "appID": companyAppID
        };
        collection.insert(company, function(err, result) {
            if (err) {
                console.log(err);
            } else {
                console.log(result);
            }
        });
        db.close();
    });
}

我正在使用 NodeJS。当用户调用insertCompanies 方法时,如果公司已经存在(通过companyIDURL),则该集合似乎允许重复。

是否有不同的插入功能可以防止重复?我环顾四周,找不到适合我的直接解决方案。

【问题讨论】:

  • 您还可以在不允许重复的字段上添加唯一索引

标签: javascript node.js mongodb


【解决方案1】:

您应该使用db.update() 而不是db.insert() 并指定$upsert: true

https://docs.mongodb.com/v3.2/reference/method/db.collection.update/

【讨论】:

    【解决方案2】:

    答案不是插入,而是使用update。 update() 方法要么修改现有文档中的字段,要么完全替换现有文档。

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 1970-01-01
      • 2011-04-24
      • 2012-04-21
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      相关资源
      最近更新 更多