在上一个问题中,我被告知在MongoDB中使用update()
和upsert: true
代替insert()
来防止重复。很酷,我喜欢这个想法,我实施了它。我的问题是,当我尝试在集合中找到文档时,出现No Document Found
错误。所以即使我告诉它插入,我也有点困惑为什么它找不到它。
代码示例:
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.update(
{
"company.companyProfileID": company.companyProfileID
}, {
company
}, {
upsert: true
}, function(err, result) {
if (err) {
//console.log(err);
} else {
console.log(result);
}
});
db.close();
});
}
function getCompany(companyUrl, app, callback) {
MongoClient.connect(url, function(err, db) {
if (err) {
console.log(err);
} else {
console.log("We are connected");
}
var collection = db.collection('Companies');
collection.find({url: companyUrl.toLowerCase(), appID: app}).toArray(function (err, result) {
if (err) {
console.log(err);
callback(err);
} else if (result.length) {
console.log(result);
callback(result);
} else {
console.log("No document found");
callback(err);
}
});
db.close();
});
}
我正在使用insertCompanies(companyID, companyURL, companyAppID)
函数将公司插入公司集合中。以下是一个示例函数调用:insertCompanies("86660a5b-7f61-4238-889d-1cc3087947b9", "sentsoftware.com", 1);
但是当我致电getCompanies
时,我会得到No Document Found
。我错误地使用update()
吗?
先谢谢你