如何解决Sembast-删除地图中的值
我有一个存储地图对象的Sembast商店。如果要删除地图中的键,是否必须更新整个地图对象,或者是否有办法在不更新整个地图的情况下删除钥匙?这些文档仅显示如何删除记录,而没有显示如何删除字段。由于存在一种更新单个字段的方法,因此我认为对其他操作使用此功能很有意义。
示例:
// store a map that contains another map
int key = await petStore.add(db,{'name': 'fish',friends : {'cats' : 0,'dogs' : 0}});
// update just the cats attribute
await petStore.record(key).update{'friends.cats' : 2};
// Now I want to (if it is possible) remove the cats attribute without calling
await petStore.record(key).update({'name': 'fish',friends : {'dogs' : 0}})
解决方法
是否可以在不更新整个地图的情况下删除密钥?
与Firestore类似,您可以使用哨兵值FieldValue.delete
删除字段。
使用点(.
)甚至可以引用嵌套字段。以下是在示例中删除cats
中的friends
键的示例:
print(await petStore.record(key).get(db));
// prints {name: fish,friends: {cats: 0,dogs: 0}}
print(await petStore
.record(key)
.update(db,{'friends.cats': FieldValue.delete}));
// prints {name: fish,friends: {dogs: 0}}
有关更多信息,请查看有关updating fields的文档
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。