dorm_mongo_database 2.0.0-dev.5 copy "dorm_mongo_database: ^2.0.0-dev.5" to clipboard
dorm_mongo_database: ^2.0.0-dev.5 copied to clipboard

A MongoDB database engine for dORM applications that need persistent, document-oriented data with typed queries and repositories.

example/lib/main.dart

import 'dart:io';

import 'package:dorm_framework/dorm_framework.dart';
import 'package:dorm_mongo_database/dorm_mongo_database.dart' as dorm;
import 'package:mongo_dart/mongo_dart.dart';

import 'models.dart';

Future<void> main() async {
  final String uri =
      Platform.environment['MONGO_URI'] ??
      'mongodb://127.0.0.1:27017/dorm_example';
  final Db database = Db(uri);
  await database.open();

  try {
    await database.collection('users').deleteMany({});
    await database.collection('posts').deleteMany({});

    final Dorm<dorm.Query, OffsetPageRequest> context = Dorm(
      dorm.Engine(database),
    );
    final User user = await context.users.repository.put(
      Creation.auto<UserData, String>(
        dependency: const UserDependency(),
        data: const UserData(name: 'Ada'),
      ),
    );
    await context.posts.repository.push(
      Post(id: 'post-1', title: 'First post', userId: user.id),
    );

    final List<User> users = await context.users.repository.peekAll(
      dorm.Filter.text('Ad', field: UserEntity.fields.name),
    );
    final List<Join<User, Post>> posts = await context.relations.users.posts
        .peekAll();
    final List<User?> initialRead = await context.users.repository
        .pull(user.id)
        .toList();

    print('Users: ${users.map((item) => item.name).toList()}');
    print('Posts: ${posts.map((item) => item.right.title).toList()}');
    print('Initial stream read: ${initialRead.single?.name}');
  } finally {
    await database.collection('posts').deleteMany({});
    await database.collection('users').deleteMany({});
    await database.close();
  }
}
0
likes
160
points
197
downloads

Documentation

API reference

Publisher

verified publisherenzosantos.dev

Weekly Downloads

A MongoDB database engine for dORM applications that need persistent, document-oriented data with typed queries and repositories.

Homepage
Repository (GitHub)
View/report issues

License

GPL-3.0 (license)

Dependencies

dorm_framework, mongo_dart, uuid

More

Packages that depend on dorm_mongo_database