我想从大写字母中删除类型'A'。我该怎么做呢?任何代码示例都将不胜感激。我正在处理一个react项目。
vnjpjtjt1#
据我所知,在您共享的文档中没有 nested 数组。在这种情况下,您可以使用arrayRemove操作符从数组中删除唯一项:
arrayRemove
const cityRef = doc(db, "cities", "capital"); await updateDoc(cityRef, { region: arrayRemove({ type: "A" }) });
这里需要注意几点:
{ type: "A" }
如果您的用例不能满足上述任何一项要求,删除该项目的方法是:1.加载文档并从中获取数组。1.更新应用程序代码中的数组。1.将整个顶级数组写回数据库。
6za6bjd02#
1.必须将doc和clone属性获取到临时对象中1.修改临时对象(从区域数组中删除项)1.使用临时对象更新原始文档最干净的方法是通过firestore/事务来实现一个小例子有一个小方法
const doc = await cityRef('cities/capital').get() const temp = JSON.parse(JSON.stringify(doc.data())) temp.region = temp.region.filter(item => item.type !== 'A') await cityRef('cities/capital').update(temp)
2条答案
按热度按时间vnjpjtjt1#
据我所知,在您共享的文档中没有 nested 数组。在这种情况下,您可以使用
arrayRemove
操作符从数组中删除唯一项:这里需要注意几点:
arrayRemove
运算子,因为它只会移除与您传递的值完全相符的数组项目。arrayRemove
操作会移除所有匹配的项。因此,如果数组中有多个{ type: "A" }
项,所有项都会被移除。如果您的用例不能满足上述任何一项要求,删除该项目的方法是:
1.加载文档并从中获取数组。
1.更新应用程序代码中的数组。
1.将整个顶级数组写回数据库。
6za6bjd02#
1.必须将doc和clone属性获取到临时对象中
1.修改临时对象(从区域数组中删除项)
1.使用临时对象更新原始文档
最干净的方法是通过firestore/事务来实现
一个小例子有一个小方法