pluck method

Future pluck(
  1. dynamic column
)

Extract specific column values

Implementation

Future<dynamic> pluck(dynamic column) async {
  try {
    final result = await all();
    if (result == null) return null;

    if (column is String) {
      return result.map((model) => model.toMap()[column]).toList();
    } else if (column is List<String>) {
      final map = <String, List<dynamic>>{};
      for (final model in result) {
        final modelMap = model.toMap();
        for (final col in column) {
          map.putIfAbsent(col, () => []).add(modelMap[col]);
        }
      }
      return map;
    }
    return null;
  } catch (e) {
    throw DatabaseException('Failed to pluck column: $e');
  }
}