kfiross / flutter_mongodb_realm

Unofficial Flutter plugin for using MongoDB Realm services on Android, iOS and web.
Apache License 2.0
41 stars 17 forks source link

Return null for empty findOne Query #24

Closed ErnestDaDev closed 3 years ago

ErnestDaDev commented 3 years ago

Return null when no item is found `Future findOne( {filter, Map<String, ProjectionValue> projection}) async { var filterCopy = <String, dynamic>{}; if (filter != null) { assert(filter is Map<String, dynamic> || filter is LogicalQueryOperator);

  if (filter is Map<String, dynamic>) {
    // convert 'QuerySelector' into map, too
    filter?.forEach((key, value) {
      if (value is QueryOperator) {
        filterCopy[key] = value.values;
      } else
        filterCopy[key] = value;
    });
  }
  if (filter is LogicalQueryOperator) {
    filterCopy = filter.values;
  }
}

var projectionMap = projection?.map((k, v) => MapEntry(k, v.value));

String resultJson = await FlutterMongoRealm.findFirstDocument(
  collectionName: this.collectionName,
  databaseName: this.databaseName,
  filter: BsonDocument(filterCopy).toJson(),
  projection: projectionMap == null ? null : jsonEncode(projectionMap),
);

if(resultJson !=null){ var result = MongoDocument.parse(resultJson); return result; }

return null; }`

kfiross commented 3 years ago

I fixed this issue now, closing issue.