Ron*_*ton 2 javascript firebase google-cloud-firestore
如何更新文档的嵌套对象中的字段?文档中使用点符号表示,但是如何使用变量作为对象名称来实现更新?
结构就像: collection("fruits").doc("as867f56asd")
name: "banana"
abc-variable:
description:"blah"
qty: 1
Run Code Online (Sandbox Code Playgroud)
我想更新文档as867f56asd的abc-variable.qty= 2
我的JavaScript要求对象名称使用变量。
我无法弄清楚更新的括号符号。是.set{merge:true}职位月薪?
这是到目前为止我尝试过的代码(粗略粘贴):
qty = evt.target.value;
//create a string
var obj = firebase.firestore.FieldPath(item).quantity;
//str = item + '.quantity';
//obj[str] = qty;
// var myUpdate = {};
// myUpdate['${item}.quantity'] = qty;
//var obj = [item]["quantity:"] = qty;
console.log("item is " + item);
//var obj = {"'" + item + "'.quantity" : qty};
//obj[item]["quantity"] = qty;
console.log("qty is " + qty);
orderRef.update (
{obj:2}
//{"quantity":qty}
//[item + '.quantity']: qty
//[`favorites.${key}.color`] = true
// ['${item}.quantity'] : qty
//[`hello.${world}`]:
//{[objname]}.value = 'value';
//['favorites.' + key + '.color']: true
//[item]["quantity"] = qty // err:reqd 2 args
//item["quantity"] = qty
//"favorites.color": "Red"
//{"`item`.quantity": qty}
//{"quantity":qty}
)
Run Code Online (Sandbox Code Playgroud)
如果您要进行更新,请执行以下操作:
let qty = 2
orderRef.update({"abc-variable.qty": qty});
Run Code Online (Sandbox Code Playgroud)
但是,abc-variable变量的值在哪里,您将执行以下操作:
let qty = 2
let variable = "abc-variable";
var values = {};
values[variable] = qty;
orderRef.update(values);
Run Code Online (Sandbox Code Playgroud)
更新资料
此代码仅更新收藏夹:
var variableObjectName = "favorites";
var qty = Date.now(); // just so it changes every time we run
var field = {quantity:qty};
var obj = {};
obj[variableObjectName] = field;
ref.update(obj);
Run Code Online (Sandbox Code Playgroud)
它不会删除文档上的任何其他属性。
更新2
要更新嵌套对象中的单个字段,请使用.寻址该字段:
ref.update({ "favorites.quantity": Date.now() });
Run Code Online (Sandbox Code Playgroud)
请参阅有关如何更新嵌套对象中的字段的文档。
更新3
要对名称存储在变量中的字段执行深度更新:
var name = "favorites";
var update = {};
update[name+".quantity"] = Date.now();
ref.update(update);
Run Code Online (Sandbox Code Playgroud)
再次显示在:https : //jsbin.com/wileqo/edit?js,console
| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |