民间,
我正在尝试使用$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中使用变量来指定内容?
由于
答案 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
用作常规变量名称。语法突出显示甚至有不同的颜色!请使用其他名称。