MongoDB Database Gids

Finch gebruikt het mongo_dart pakket voor MongoDB database-operaties. Je kunt mongo_dart gebruiken om databasebewerkingen in je Finch-applicatie uit te voeren.

Verbinden met MongoDB

Om verbinding te maken met een MongoDB-database, voeg de volgende code toe aan je app.dart bestand:

import 'package:finch/finch.dart';

void main() async {
  final configs = FinchConfigs(
    dbConfig: FinchDBConfig(
      enable: true,
      host: 'localhost',
      port: '27017',
      user: 'database_username',
      pass: 'database_password',
      dbName: 'database_name',
    ),
  );

  final server = FinchApp(configs: configs);

  server.start().then((value) {
    Console.p("Server started: http://localhost:${value.port}");
  });
}

In bovenstaand voorbeeld hebben we de MongoDB-database ingeschakeld en de host, poort, gebruikersnaam, wachtwoord en databasenaam opgegeven. Je kunt deze waarden aanpassen aan jouw databaseconfiguratie.

MongoDB gebruiken

Om de MongoDB-database te gebruiken, kun je de app.mongoDb eigenschap gebruiken. Deze eigenschap retourneert een Db object dat je kunt gebruiken voor database-operaties.

var db = app.mongoDb;

Database Collecties

Finch biedt een eenvoudige manier om database-collecties voor MongoDB te definiëren. Je kunt de DBCollection klasse gebruiken om de structuur van je collectie te definiëren. De DBCollection klasse biedt methoden om velden en andere eigenschappen te definiëren. Gebruik de DBField klassen om velden te definiëren.

import 'package:finch/finch.dart';

class ExampleCollection extends DBCollection {
  ExampleCollection() : super(db: app.mongoDb, name: 'example');

  Future<void> insertExample(ExampleModel model) async {
    await collection.insert(model.toJson());
  }

  Future<List<ExampleModel>> getAllExample({
    int? start,
    int? count,
  }) async {
    start = (start != null && start > 0) ? start : null;
    var rows = await collection
        .modernFind(
          limit: count,
          skip: start,
          sort: DQ.order('_id'),
        )
        .toList();
    return ExampleModel.fromListJson(rows);
  }
}

In bovenstaand voorbeeld hebben we een collectie example gedefinieerd met velden zoals title en slug. Je kunt DBCollection gebruiken om collections te creëren en relaties tussen collecties te definiëren.

Query's uitvoeren

Finch biedt een eenvoudige manier om gegevens op te halen uit je MongoDB-collecties met modernFind. Je kunt de DQ klasse gebruiken om query's op te bouwen:

var rows = await collection
    .modernFind(
      limit: count,
      skip: start,
      sort: DQ.order('_id'),
    )
    .toList();

Voorbeeld

Voor meer informatie, bekijk het example project in het Finch-repository. Het voorbeeldproject gebruikt MongoDB en laat Finch's databasefuncties zien.