MongoDB插入没有重复

时间:2016-11-17 20:28:39

标签: javascript node.js mongodb

现在我正在运行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),则该集合似乎允许重复。

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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