【发布时间】:2021-06-24 08:49:00
【问题描述】:
我想在使用 pouchdb 的插件 upsert 时传入用户定义的变量。理想情况下,是这样的:
var res = db.upsert(uniqueID, (doc) => {
doc.data.var1.var2.var3 = userInput
}
我的尝试:
var res = db.upsert(uniqueID, (doc) => {
doc.data = {[var1]:
{[var2]:
{[var3]: userInput}
}
}
}
这会导致doc.data 的内容被每个新变量重复覆盖。
现在,有没有办法简单地定义一个嵌套的、依赖于变量的键,我打算更新插入?
每个var3: userInput 的文件似乎都太过分了。
【问题讨论】:
-
使用变量键对
doc.data的赋值有效,所以缺少一些东西。请澄清“被每个新变量重复覆盖”的意思。 -
使用
=右侧的变量效果很好。我想要做的是像doc.data.var1.var2 = var3这样在左侧传递它们。实际上,doc.data应该有多个数组,随着时间的推移由多个变量定义。上面的最后一个示例始终返回doc.data作为最新的upsert,并覆盖了任何其他(如预期的那样)。 -
您说“多个数组”,但我根本看不到数组,只是嵌套对象。通常,您是否需要一种在某些键路径之后添加嵌套值的方法,例如键 = [var1,var2,var3], 值 = someValue ?
标签: javascript arrays database pouchdb upsert