如何在猫鼬查询中写入查询值

时间:2020-06-24 05:46:56

标签: javascript mongodb mongoose

我在mongo文档中有一个数组,如下所示。

{
  company: [ 
    {name: "exist"}, 
    {name: "cool"},
    {name: "ho"}
  ]
}

我想摆脱带有位置值的数组中的数据。

所以我查询了。

   await Company.findOneAndUpdate({
      _id: "xdef"
      },
      {
        $unset: {
           'company.1': 1
        }
      }
    })

效果很好。现在,我想按查询放置位置。

   await Company.findOneAndUpdate({
      _id: "xdef"
      },
      {
        $unset: {
           `company.{req.query.position}`: 1
        }
      }
    })

但这给我一个错误。如何为这种情况编写足够的代码?
非常感谢您阅读它。

1 个答案:

答案 0 :(得分:1)

您可以使用computed property names。而且字符串文字中也缺少$

 await Company.findOneAndUpdate({
    _id: "xdef"
  }, {
    $unset: {
      [`company.${req.query.position}`]: 1
    }
  }
})

通过计算出的属性名称,您可以使用一个表达式 被计算为对象的属性名称。

相关问题