如何解决使用带有颤振的SembastNoSql的查询问题
我对Nosql数据库非常陌生,我只想问一个关于使用sembast的简单问题!我正在开发一个带有Flutter的非常简单的应用程序,我想将对象的数组“列表”中的“名称”等于1。
{
"id": 12345,"list": [{
"name": 1,"element": [{
"nameItem": "a"
},{
"nameItem": "b"
}]
},{
"name": 2,"element": []
},{
"name": 3,"element": []
}]
}
{
"name": 1,"element": [{
"nameItem": "a"
},{
"nameItem": "b"
}]
}
我已经编写了这段代码,但是它不起作用:我不明白如何在json树中使用子标签作为键进行查询。
Future<List<ElementList>> getElementFromList(int name) async{
final finder = Finder(filter: Filter.equals("name",name));
final recordSnapshot = await _elementList.find(await _db,finder: finder);
return recordSnapshot.map((snapshot){
final elementObj = ElementList.fromJson(snapshot.value);
return elementObj;
}).toList();
}
这使我返回[]。我该如何解决这个问题? 预先谢谢你!
解决方法
Sembast查询允许过滤记录,而不是记录的一部分。如果您提到的对象是完整记录,则可以:
- 使用自定义过滤器自己对数据库中的每个记录执行查找(检查
list
字段中的每个项目`) - 检索记录时,提取项目(执行类似的Map / List操作)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。