2

mongodb シェルでフィールド名の一部として変数を使用するにはどうすればよいですか? 私は次のことをしようとしています:

> 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}。ではない。どうすればこれを回避できますか?

ありがとうございました、

/デビッド

4

1 に答える 1

7

JSオブジェクトを試すことができます:

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

また

var t = 10, doc = {};
doc["Test."+t] = 0;
于 2012-04-19T17:47:53.867 に答える