我正在尝试使用传入的字符串变量更新mongo中的数据库。但是,Javascript会自动强制变量类型,并在数据库中创建一个“类型”键而不是字符串类型指向的键(让我们例如说“通知”)
"update_notifications": function (id ,type ,callback) {
db.collection("backend_users", function(err, collection) {
collection.update(
{"_id": new mongodb.ObjectID(id)},
{ $bit: { type : { xor: 1 } } },
function (err) {
if (err) { console.log(color.red(err)); }
callback(err);
}
);
});
},
无论如何强制mongo使用“notify”而不是创建一个新的“type”键?谢谢!
答案 0 :(得分:0)
你基本上想要在语句之外构建你的“更新”对象,就像这个
"update_notifications": function (id ,type ,callback) {
var update = { "$bit": { } };
update["$bit"][type] = { xor: 1 };
db.collection("backend_users", function(err, collection) {
collection.update(
{"_id": new mongodb.ObjectID(id)},
update,
function (err) {
if (err) { console.log(color.red(err)); }
callback(err);
}
);
});
},
“左”侧始终被视为对象表示法中的字符串文字,但您可以按照显示的方式进行分配