delete method

  1. @override
FutureOr<DeleteDbResult> delete(
  1. Access access
)

Implementation

@override
FutureOr<DeleteDbResult> delete(Access access) async {
  if (access.query == null) {
    throw ArgumentError("Delete calling without Access.query");
  }

  if (access.settings != null && access.settings is! MongoDbDeleteSettings) {
    throw ArgumentError(
        "Delete settings must be null or MongoDbDeleteSettings");
  }

  var settings = access.settings as MongoDbDeleteSettings?;

  if (settings?.many ?? false) {
    await db.collection(access.collection).deleteMany(buildQuery(access),
        writeConcern: settings?.writeConcern,
        collation: settings?.collation,
        hint: settings?.hint,
        hintDocument: settings?.hintDocument);
    return DeleteDbResult(exists: true);
  } else {
    /*var res =*/
    await db.collection(access.collection).deleteOne(buildQuery(access),
        writeConcern: settings?.writeConcern,
        collation: settings?.collation,
        hint: settings?.hint,
        hintDocument: settings?.hintDocument);
    /*print("Delete DB: ${res.serverResponses}");*/
    return DeleteDbResult(exists: true);
  }
}