在MongoDB中查找更新的集合

时间:2016-11-21 19:58:07

标签: javascript mongodb database

在上一个问题中,我被告知在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()吗?

先谢谢你

0 个答案:

没有答案