我一直在尝试使用flutter dart从我的realmdb中获取一个type的sum。不幸的是,我一直收到一个运行时错误:
- 领域例外(领域例外:错误代码:36 .信息:运算'.@sum'无法应用于属性'type',因为它不是列表)*
这是我的数据库架构:
导入“包:领域/领域. dart”;
part 'realmdb.g.dart';
@RealmModel()
class _Item {
@MapTo('_id')
@PrimaryKey()
late ObjectId id;
late String type;
late String description;
late double value;
@MapTo('owner_id')
late String ownerId;
DateTime? date;
}
查询:
var杂货=领域.查询('type.@sum.value ==“杂货”');
这是我收藏的一份文档:
{"_id":{"$oid":"6416459ebae4d0e8702d0e27"},"date":{"$date":{"$numberLong":"1679181214346"}},"description":"Bit Coin","owner_id":"6414e8ad4791938608072411","type":"Crypto","value":{"$numberDouble":"5987.0"}}
我也想从任何类型中获取总和。像“杂货”总和= 365,或“休闲”总和= 643等。
即使在阅读了https://www.mongodb.com/docs/realm/realm-query-language/的官方网站后,通过转换他们的例子
"items.@sum.progressMinutes > 100" into 'value.@sum.type =="Groceries"' i
还是不行。
有人知道怎么解决吗?
我真的很感激你的帮助。
先谢谢你了。
奥拉塞比88
var杂货=领域.查询('type.@sum.value ==“杂货”');
1条答案
按热度按时间xytpbqjk1#
Flutter SDK的查询功能目前不支持此功能,但您可以在纯dart中执行此操作:
虽然从SQL的Angular 来看,这似乎是一个代价高昂的操作,但对于Realm来说,代价并不高,因为它只从数据库读取值,而不是整个
Item
对象。