通过变量获取位置,然后在mongodb中修改特定对象

时间:2019-05-29 15:50:02

标签: javascript arrays mongodb mongoose

如何使该查询使用我的变量而不是硬编码0?

let pos = 0;

{$set: {'answers.0.acknowledged': data}}

2 个答案:

答案 0 :(得分:2)

您可以使用ES6 String InterpolationComputed Property Names来构建$set的密钥:

let pos = 0;
let data = 'some data';
let q = {$set: {[`answers.${pos}.acknowledged`]: data}}
console.log(q);

答案 1 :(得分:2)

通常您选择的是template literalsArray.joinString.concat等:

let pos = 0;
let data = 'data';

let query = {$set: {[['answers.', pos,'.acknowledged'].join('')]: data}}

console.log(query);

使用String.concat

let pos = 0;
let data = 'data';
let query = {$set: {['answers.'.concat(pos,'.acknowledged')]: data}}
console.log(query);

Array.joinString.concattemplate literals do not处具有更好的浏览器支持。如果要在客户端使用它们。如果您在后端使用它们,则可能不必担心。

相关问题