如何让 monk findoneandupdate 属性 成为一个变量?

How to make monk findoneandupdate property a variable?

我正在尝试使用 Monk 查找和更新文档中的字段。问题是,我试图在 属性 区域中使用一个变量。 (属性: 值)类型和值。

let result = await collection.findOneAndUpdate({type: value}, { $set: { blacklisted: false} })

例如,当我将类型设置为带有 let type = "apple" 的 apple 时,它​​不会使用 findOneAndUpdate 中的类型变量。

好像我就这样把苹果放进去了

let result = await collection.findOneAndUpdate({"apple": value}, { $set: { blacklisted: false} })

100% 正常。

我也尝试过将其设为对象,如下所示:let obj = {type, value} 然后将其放入查找和更新 let result = await collection.findOneAndUpdate(obj, { $set: { blacklisted: false} })

然而,仍然没有运气。有什么帮助吗?谢谢。

为了使用变量的值作为键,你应该使用方括号[]

let type = "apple"
let result = await collection.findOneAndUpdate(
  { [type]: value },  <----- Using [] on type variable 
  { $set: { blacklisted: false } }
);