Javascript变量名称强制为字符串

时间:2014-06-18 00:38:19

标签: javascript mongodb coercion

我正在尝试使用传入的字符串变量更新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”键?谢谢!

1 个答案:

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

“左”侧始终被视为对象表示法中的字符串文字,但您可以按照显示的方式进行分配