【发布时间】:2014-06-18 00:38:18
【问题描述】:
我正在尝试使用传入的字符串变量更新 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 使用“通知”而不是创建新的“类型”键?谢谢!
【问题讨论】:
-
您的
type变量位于对象表示法的“左”或“键”一侧,因此它必须是对“键”有效的字符串。这也是 MongoDB 通过为“键”分配值来工作的方式。您实际上要更新数据中的哪个字段?听起来您需要用parseInt包装type。 -
我正在更新的字段是“通知”,并且类型也作为“通知”传入。当我在第 6 行将类型更改为“通知”时,代码运行。
标签: javascript mongodb coercion