我想向云Firestore中已存在的对象添加新的属性
/*
After Update 1, my Expectation:
MyObject = {
'NewProperty1': 'newValue1'
}
*/
db.collection('users').doc(id).update({
MyObject: {'NewProperty1': 'newValue1'}
});
/*
After Update 2, my Expectation:
MyObject = {
'NewProperty1': 'newValue1',
'NewProperty2': 'newValue2',
}
*/
db.collection('users').doc(id).update({
MyObject: {'NewProperty2': 'newValue2'}
});
/*
After Update 3, my Expectation:
MyObject = {
'NewProperty1': 'newValue1',
'NewProperty2': 'newValue2',
'NewProperty3': 'newValue3',
}
*/
db.collection('users').doc(id).update({
MyObject: {'NewProperty3': 'newValue3'}
});
如您所见,我只是向一个对象添加了新属性。
现在这段代码每次都用旧属性覆盖新属性。
use set method
db.collection('users').doc(id).set({
'NewProperty2': 'newValue2',
});
>
没有合并的设置将覆盖文档或创建它,如果它还不存在
set with merge将更新文档中的字段,如果不存在,则创建该字段
更新将更新字段,但如果文档不存在将失败
create将创建文档,但如果文档已存在,则会失败
请参见以下答案:https://stackoverflow.com/a/46600599/1680793
下面的应该可以
db.collection('users').doc(id).update({
'MyObject.NewProperty1': 'newValue1'
});
查看文档了解更多详细信息。
如果属性名称是动态的(请参阅下面的注释),您可以执行以下操作:
var key = 'NewPropertyX';
var value = 'propertyX';
db.collection('users').doc(id).update({
[`MyObject.${key}`]: value
});
我想要得到一个这样的对象: 通过这样编码: 但我总是得到以下几点:
问题内容: 这件事困扰了我一段时间。我为什么不能做: …虽然我可以执行以下操作? 这是什么规则?您能给我介绍一下吗? 问题答案: 您可以向具有的任何对象添加属性。 例如,没有它。 字符串和其他简单的内置对象也没有它。 使用类也没有它。 除非前面的声明适用,否则用定义的类都具有它。 如果使用/的对象没有/ ,通常是为了节省空间。例如,如果有一个命令,那就太过分了- 想象一下一个非常短的字符串的膨胀程
我编码一个API与Node.js,MongoDB和快递。我似乎无法向我正在迭代的位置对象添加新属性。 我完全不理解我的代码的问题。是一个普通的对象,它应该可以工作。我说错了吗? 这是我在控制台中得到的输出。。。这太奇怪了。
我想有条件地向对象添加一个属性。目前我有这个: 问题是如果汽车。电池不存在我有电池:未定义。如果对象中不存在该属性,我宁愿不要该属性。我怎样才能做到这一点?
我正在尝试执行以下操作以满足代码构建器的要求(具体来说是Sencha Cmd)。 这是我需要做的本质。关键因素是函数体必须以返回对象文字结束。由于生成器中的限制,我无法返回变量。那么,如果参数includeB为true,如何在下面的伪代码点添加属性“b”,但如果为false,则根本不添加属性。不允许ie b==未定义或b==null。 也许这是不可能的。 感谢阅读和考虑, 默里
问题内容: 嗨:在我们的应用程序中,我们已经从数据库中检索了一些数据,例如,表中包含以下字段:id,名称,年龄,地址,电子邮件。 然后,我们将根据客户提供一些这些属性。 如果客户需要ID,名称,我们将获得ID名称;如果客户需要ID,名称,年龄,则将获得ID,名称,年龄。 现在,我们想创建一个包装这些属性的类。但是,我们不知道确切要求哪个字段。 我可以在这里用Class替换地图吗? 问题答案: 如果