现在我正在运行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
方法时,如果该公司已存在(通过companyID
或URL
),则该集合似乎允许重复。
是否有不同的插入功能可以防止重复?我环顾四周,无法找到适合我的直接解决方案。
答案 0 :(得分:2)
您应使用db.insert()
而不是db.update()
,而是指定$upsert: true
。
https://docs.mongodb.com/v3.2/reference/method/db.collection.update/
答案 1 :(得分:1)
答案不是插入,而是使用update。 update()方法可以修改现有文档中的字段,也可以完全替换现有文档。