查找文档,编辑文档并将其放回MongoDB中

时间:2016-09-19 14:47:01

标签: javascript node.js mongodb

我正在使用mongodb,我希望能够编辑文档并重新插入而不重复。到目前为止,我已经尝试过collection.findAndModify(),但我无法让它工作。我有这样的集合:

UserProfiles = [
		{
			userProfileID: 1,
			firstName: 'Austin',
			lastName: 'Hunter',
			email: 'ahun.....com',
			token: '',
			platform: '',
			password: 'incorrect',
			companyProfileID: 1,
			authentication: '',
			UserTopics: [

我希望能够做到这一点:

1 - 通过搜索电子邮件匹配来抓取对象的个人资料。

2 - 当电子邮件匹配时,编辑令牌和平台项目。

3 - 然后将文档重新放入,没有重复。所以我不能再插入它,因为它重复它。

任何人都可以帮我解决这个问题吗?

代码:

function registerUser(email, token, platform) {
	MongoClient.connect(url, function(err, db) {
    	if (err) {
			console.log(err);
    	} else {
			console.log("We are connected");
    	}
		
		var collection = db.collection('UserProfile');
		collection.findAndModify({
        	query: { email: email },
        	update: { token: token, platform: platform }
        });
        db.close();
	

1 个答案:

答案 0 :(得分:4)

modelname.findOneAndUpdate({ email: var_email}, { $set: { token: var_token, platform: var_platform}}, { new: true }, function(err, doc) 
{
   //doc here has updated document, in case you need it. 
});
  

var_email等是您的变量名称,电子邮件是字段名称   数据库中。

{ new: true } - 此部分用于获取更新的文档,您可以选择在您的代码中没有这个,但是您不会得到更新的文档作为响应。

相关问题