modernFindAndModify method
Future<FindAndModifyResult>
modernFindAndModify(
{ - dynamic query,
- dynamic sort,
- bool? remove,
- dynamic update,
- bool? returnNew,
- dynamic fields,
- bool? upsert,
- List? arrayFilters,
- String? hint,
- Map<String, Object>? hintDocument,
- FindAndModifyOptions? findAndModifyOptions,
- Map<String, Object>? rawOptions,
})
Implementation
Future<FindAndModifyResult> modernFindAndModify(
{query,
sort,
bool? remove,
update,
bool? returnNew,
fields,
bool? upsert,
List? arrayFilters,
String? hint,
Map<String, Object>? hintDocument,
FindAndModifyOptions? findAndModifyOptions,
Map<String, Object>? rawOptions}) async {
if (!db._masterConnectionVerified.serverCapabilities.supportsOpMsg) {
throw MongoDartError('This method is not available before release 3.6');
}
Map<String, Object>? sortMap;
if (sort is Map) {
sortMap = <String, Object>{...sort};
} else if (sort is SelectorBuilder && sort.map[keyOrderby] != null) {
sortMap = <String, Object>{...sort.map[keyOrderby]};
}
var famOperation = FindAndModifyOperation(this,
query: query == null ? null : _queryBuilder2Map(query),
sort: sortMap,
remove: remove,
update: update == null
? null
: (update is List ? update : _updateBuilder2Map(update)),
returnNew: returnNew,
fields: _fieldsBuilder2Map(fields),
upsert: upsert,
arrayFilters: arrayFilters,
hint: hint,
hintDocument: hintDocument,
findAndModifyOptions: findAndModifyOptions,
rawOptions: rawOptions);
return famOperation.executeDocument();
}