create method

  1. @override
FutureOr<CreateDbResult> create(
  1. Access access
)

Implementation

@override
FutureOr<CreateDbResult> create(Access access) async {
  if (access.data == null) {
    throw ArgumentError("Create calling without Access.data");
  }
  if (access.settings != null && access.settings is! MongoDbCreateSettings) {
    throw ArgumentError(
        "Create settings must be null or MongoDbCreateSettings");
  }
  var settings = access.settings as MongoDbCreateSettings?;
  if (access.data is List) {
    for (var d in access.data as List) {
      d["_id"] ??= ObjectId().toJson();
    }

    await db.collection(access.collection).insertAll(
        (access.data as List).cast<Map<String, dynamic>>(),
        writeConcern: settings?.writeConcern);
    return CreateDbResult(identifier: null);
  } else {
    access.data!["_id"] ??= ObjectId().toJson();
    /*var res = */
    await db
        .collection(access.collection)
        .insert(access.data!, writeConcern: settings?.writeConcern);
    // print("CREATE DB: $res");
    return CreateDbResult(identifier: null);
  }
}