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 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(resultJson !=null){ var result = MongoDocument.parse(resultJson); return result; }
return null; }`