Javascript Mongojs更新动态生成器$set
我正在尝试动态生成$set值,以更新数据库中的用户帐户详细信息。我在用mongojs。下面是代码的一部分Javascript Mongojs更新动态生成器$set,javascript,node.js,socket.io,mongojs,Javascript,Node.js,Socket.io,Mongojs,我正在尝试动态生成$set值,以更新数据库中的用户帐户详细信息。我在用mongojs。下面是代码的一部分 var updateData = ''; if(data.avatar_url) { updateData += "avatar_url: \"" + data.avatar_url + "\", "; } if(data.bio) { updateData += "bio: \"" + data.bio + "\", "; }
var updateData = '';
if(data.avatar_url) {
updateData += "avatar_url: \"" + data.avatar_url + "\", ";
}
if(data.bio) {
updateData += "bio: \"" + data.bio + "\", ";
}
if(data.chat_background) {
updateData += "chat_background: \""+ data.chat_background + "\"";
}
updateData = "{ " + updateData + " }";
console.log(updateData);
db.users.update({ username: socket.username }, {$set: updateData}, function (err, updated) {
出于某种原因,这不起作用。知道为什么吗?尝试传递
数据
对象本身,而不是它的JSON表示:
db.users.update({ username: socket.username }, {$set: data}, ...);
编辑:
如果data
对象包含一些额外的属性,并且您不希望将它们插入数据库,则可以尝试以下解决方案:
var updateData = {
avatar_url: data.avatar_url,
bio: data.bio,
chat_background: data.chat_background
};
db.users.update({ username: socket.username }, {$set: updateData}, ...);
我不知道为什么我一开始没有尝试这个。谢谢。