具有ES6模板字符串的MongoDB对象密钥

Aja*_*ery 6 javascript mongodb ecmascript-6

我正在尝试使用以下方法更新集合中的数组:

 var str = "list.0.arr";
    db.collection('connect').update({_id: id}, {$push:  { `${str}`: item}}); 
Run Code Online (Sandbox Code Playgroud)

如果我这样做,这个确切的字符串就可以正常工作:

db.collection('connect').update({_id: id}, {$push:  { "list.0.arr": item}}); 
Run Code Online (Sandbox Code Playgroud)

这是为了表明它有效,但是Unexpected token当我使用第一个解决方案时会抛出错误。

我的问题是,我如何才能获得用作Object键的最佳解决方案?

Fel*_*ing 5

模板文字不能用作对象文字中的键。改用计算属性:

db.collection('connect').update({_id: id}, {$push: {[str]: item}}); 
//                                                  ^^^^^
Run Code Online (Sandbox Code Playgroud)

另请参见使用变量作为JavaScript对象文字中的键