Javascript变量名强制转换为字符串

Javascript variable name coercion to string

本文关键字:字符串 转换 变量名 Javascript      更新时间:2023-09-26

我正在尝试使用传入的字符串变量更新mongo数据库。但是,Javascript会自动强制变量类型,并在数据库中创建一个"type"键,而不是字符串类型指向的键(例如,我们说"notify")

"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"键?谢谢!

你基本上想要在语句之外构造你的"update"对象,像这样

"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);
      }
    );
  });
},

左侧总是被认为是对象表示法中的字符串字面值,但您可以按照

所示的方式进行分配