【问题标题】:How can I use variables as part of field names in the MongoDB shell?如何在 MongoDB shell 中使用变量作为字段名称的一部分?
【发布时间】:2012-04-19 17:29:01
【问题描述】:

如何在 mongodb shell 中使用变量作为字段名称的一部分?我正在尝试执行以下操作:

> var site = "google.com";
> var y = 10;
> var m = 5;

// This fails (field names as concatenation):
> db.test.update({ "domain" : site},
      { $inc : {"counts.year."+y : 1, "counts.month."+m : 1}}, upsert=true);

> Thu Apr 19 19:12:56 SyntaxError: missing : after property id (shell):1

// This works:
> db.test.update({ "domain" : site}, { $inc : {"counts.year.10" : 1,
      "counts.month.5" : 1}}, upsert=true);

我猜问题出在创建 JS 对象的方式上:例如 var t = 10; doc = {t : 0}; 有效,但 var t = 10; doc = {"Test."+t : 0};才不是。我该如何解决这个问题?

谢谢,

/大卫

【问题讨论】:

    标签: javascript mongodb mongo-shell


    【解决方案1】:

    你可以试试 JS 对象:

    var t = 10;
    var doc = {};
    doc["Test."+t] = 0;
    

    var t = 10, doc = {};
    doc["Test."+t] = 0;
    

    【讨论】:

    • 谢谢,这工作var site = "google.com"; var y = 2012; var m = 10; var d = 30; doc = {}; incDoc["counts.year."+y] = 1; incDoc["counts.month."+m] = 1; incDoc["counts.days."+d] = 1; db.test.update({ "domain" : site}, { $inc : incDoc}, upsert=true);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多