MongoDB $重命名密钥名称的javascript变量

时间:2014-05-20 20:47:10

标签: javascript mongodb

民间,   我正在尝试使用$rename运算符(http://docs.mongodb.org/manual/reference/operator/update/rename/

工作的:

collection.update( {_id: id}, {$rename: {'foo': 'bar'} } , function (err, result) {});

没有:

var this = 'foo';
var that = 'bar';
collection.update( {_id: id}, {$rename: {this: that} } , function (err, result) {});

为什么我不允许在mongoclient中使用变量来指定内容?

由于

1 个答案:

答案 0 :(得分:2)

试试这样:

var this = 'foo';
var that = 'bar';
var rename_query = {'$rename': {}};
rename_query['$rename'][this] = that;
collection.update( {_id: id}, rename_query , function (err, result) {});

问题是对象构造函数{foo: bar},键意味着像{'foo': bar}这样的引号,所以不可能在那里使用变量。但是你可以像我的代码示例一样单独构建对象。

另外,请注意变量this是特殊关键字。不要将this用作常规变量名称。语法突出显示甚至有不同的颜色!请使用其他名称。