MongoDB 插入无重复项

Aus*_*tin 3 javascript mongodb node.js

现在我正在运行 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();
    });
}
Run Code Online (Sandbox Code Playgroud)

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

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

cju*_*gel 5

相反,db.insert()您应该使用db.update()并指定$upsert: true.

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