在这个使用
mongodb-native驱动程序的代码中,我想增加我在单独变量中指定的字段的值.问题是$inc子句中的字段名称在这种情况下将是“变量”,而不是变量的内容.在查询部分中,所选变量按预期工作并找到正确的id.
var selected = 'id_of_the_selected_one'; var variable = 'some_string'; collection.findAndModify( {_id : selected},{},{$inc : {variable : 1}},{new : true,upsert : true},function(err,autoincrement) { /* ... */ } );
我应该如何做到这样,而不是“变量”这个词会有变量的内容?
解决方法
将另一个变量的键设置为其值,并将其作为对象传递.行动说明:
var selected = 'id_of_the_selected_one'; var variable = 'some_string'; var action = {}; action[variable] = 1; // the value collection.findAndModify( {_id : selected},{$inc : action},autoincrement) { /* ... */ } ); // Same as {$inc: {'some_string': 1} }