当更新流星中的嵌套集合时,如何为更新路径传递变量
When update nested collection in meteor, how to pass variable for the update path
更新Metroet中的嵌套集合不是问题(此处描述:使用$set更新集合对象上的嵌套属性)
基本方法:
Collection.update({sel}, {"$set" : {"address.city": "new address"}});
但是,如果我想用变量来描述我的路径呢?
这个显然不起作用:
var cityName = "NYC";
Collection.update({sel}, {"$set" : {"address." + cityName: "new address"}});
遗憾的是,这个也不起作用:
var path = "address.NYC";
Collection.update({sel}, {"$set" : {path: "new address"}});
也没有
var object = {"address.NYC": "new address"};
Collection.update({sel}, {"$set" : object});
实际上,它是有效的,但不是我想要的方式。它完全替换了"address"对象,删除了其他属性。
有什么想法吗?
有没有办法在查询部分选择我要更新的字段?
它不起作用,因为您不能在javascript中使用对象文字的动态键。您需要使用括号表示法,并构建要在update
中使用的对象。例如:
var city = 'NYC';
var object = {};
object["address." + city] = 'new address';
MyCollectionName.update(idOfObjectToUpdate, {$set: object});
假设Collection
实际上是一个集合的名称,而{sel}
是您尝试执行的操作的正确选择器,那么您的最后一个示例应该有效
相关文章:
- 如何在编译时更新yeoman angular中的html路径
- 将URL路径与<a>attr('href')来动态更新.active类
- 不可变,更新在给出无效的键路径
- D3 在更新时调整路径大小(获得 10 像素宽度) - 为什么
- 当更新流星中的嵌套集合时,如何为更新路径传递变量
- 如何使用jQueryURI更新具有完整目录路径的链接
- 如何在Angular文件上传模块中更新URL路径
- 在嵌套json对象中查找和更新,而不更改不同子路径中的相同密钥对值
- 由于斜杠字符,Firebase多路径更新失败
- d3.js甜甜圈图::其他路径被渲染而不更新
- 使用路径线选择更新图案
- 具有多个更新路径的主干用户模型
- FabricJS:如何获取更新路径的位置
- 避免无效路径格式错误在D3更新
- 从类型化数组更新svg路径
- 使用HTML文本字段沿着SVG文本路径更新文本
- 如何隐藏路径位置,当使用外部Javascript更新HTML与外部文本文档
- 在树的顶部绘制SVG路径.无法更新路径
- 要求 JS填充程序在更新路径后丢失
- RaphaelJS/Javascript更新路径,而不是创建新的