微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sembast-删除地图中的值

如何解决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 举报,一经查实,本站将立刻删除。