最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How can I use variables as part of field names in the MongoDB shell? - Stack Overflow

programmeradmin0浏览0评论

How can I use variables as part of field names in the mongodb shell? I am trying to do the following:

> var site = "google";
> 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);

I guess the problem is in the way the JS object is created: for instance var t = 10; doc = {t : 0}; works but var t = 10; doc = {"Test."+t : 0}; does not. How can I work around this?

Thank you,

/David

How can I use variables as part of field names in the mongodb shell? I am trying to do the following:

> var site = "google.";
> 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);

I guess the problem is in the way the JS object is created: for instance var t = 10; doc = {t : 0}; works but var t = 10; doc = {"Test."+t : 0}; does not. How can I work around this?

Thank you,

/David

Share Improve this question asked Apr 19, 2012 at 17:29 OG DudeOG Dude 9362 gold badges12 silver badges23 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 8

you could try for the JS object:

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

or

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

评论列表(0)

  1. 暂无评论