如何在 MongoDB shell 中使用变量作为字段名称的一部分

How can I use variables as part of field names in the MongoDB shell?

本文关键字:字段 一部分 变量 MongoDB shell      更新时间:2023-09-26

如何在 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}; 不工作。我该如何解决此问题?

谢谢

/大卫

你可以尝试使用JS对象:

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

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