更新动态生成器$set

Mongojs update dynamic generator $set

本文关键字:set 动态 更新      更新时间:2023-09-26

我试图动态生成$set值来更新数据库中的用户帐户详细信息。我用的是蒙古语。以下是部分代码:

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) {

由于某些原因,这不起作用。知道为什么吗?

尝试传递data对象本身,而不是它的JSON表示:

db.users.update({ username: socket.username }, {$set: data}, ...);
编辑:

如果data对象包含一些额外的属性,并且您不希望它们插入到DB中,您可以尝试以下解决方案:

var updateData = {
    avatar_url:      data.avatar_url,
    bio:             data.bio,
    chat_background: data.chat_background
};
db.users.update({ username: socket.username }, {$set: updateData}, ...);