猫鼬-如何在键中使用变量

时间:2018-11-24 05:13:12

标签: node.js mongodb mongoose

标题不是很清楚,我将演示我的意思。

我有一个看起来像以下文件的文件...

const room_schema = new Schema({
  room_id: data.room_id,
  song_queue: [{
    _id: false,
    user_id: String,
  }],
});

song_queue是一个数组。在我的代码中,我有一个变量,该变量为我提供了需要更新的元素的索引。我们将变量称为position ...

room = await Room.findOneAndUpdate(
  { 
    room_id: data.room_id 
  },
  {
    "song_queue." + position + ".user_id": data.user_id
  }
);

我需要在键中使用该变量,但是,上面的代码不起作用。如何使我的逻辑起作用?

1 个答案:

答案 0 :(得分:1)

必须使用方括号,也可以使用模板文字,请尝试以下方式:

const room = await Room.findOneAndUpdate(
      { 
        room_id: data.room_id 
      },
      {
         ["song_queue." + position + ".user_id"]: data.user_id
      }
    );