颤动Mongo数据库对象ID为字符串

wmvff8tz  于 2022-10-22  发布在  Go
关注(0)|答案(1)|浏览(143)

我正在用Ffltter和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对象ID中的定制类型来保存id。

c0vxltue

c0vxltue1#

_id是对象ID。

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

你想要个便士。我想你可以改一下这条线

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

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

相关问题