Flutter mongo数据库对象id到字符串



我正在用Flutter和MongoDB构建一个应用程序。有一件事我不理解。

当我检索用户数据时,我通过将Map<String, dynamic>?变量传递给函数fromJson来设置对象。

问题是id得到了mongo的所有语法,比如:ObjectId("62096f5cbbf77abdf2ee00e4"),而我只希望"62096f5cbbf77abdf2ee00e4"有一个更干净的语法。

这可能吗?

User.fromJson(Map<String, dynamic> json) : 
id = json['_id'].toString(),
name = json['name'].toString();

使用解决方案编辑

我认为最好的解决方案是使用mongo_dart ObjectId中的自定义类型来保存id。

_id是ObjectId。

ObjectId objectId = collections.first['_id'];
print("objectId: ${objectId.id}");
print("oid: ${objectId.$oid}");
print("dateTime: ${objectId.dateTime}");
print("hashCode: ${objectId.hashCode}");

结果如下:

objectId: BsonBinary(62096f5cbbf77abdf2ee00e4)
oid: 62096f5cbbf77abdf2ee00e4
dateTime: 2022-10-21 00:00:00.000
hashCode: 123456789

您需要$oid。我想你可以换这条线

id = json['_id'].toString(),

id = json['_id'].$oid.toString(),
//or
id = (json['_id'] as ObjectId).$oid.toString(),

相关内容

  • 没有找到相关文章

最新更新