Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/amaui-org/amaui-mongo

Mongo
https://github.com/amaui-org/amaui-mongo

amaui back-end backend express expressjs javascript js mongo mongodb node nodejs typescript utils web

Last synced: about 2 months ago
JSON representation

Mongo

Awesome Lists containing this project

README

        



amaui logo

amaui Mongo


Mongo



MIT license    
Production ready    
100% test cov    
Nodejs


Very simple code    
Modern code    
Junior friendly    
Typescript    
Made with :yellow_heart:


## Getting started

### Add

```sh
yarn add @amaui/mongo
```

Add `mongodb` as a peer dependency

```sh
yarn add mongodb
```

### Use

```javascript
import { Mongo, BaseCollection } from '@amaui/mongo';
// Make if you wanna a config file and
// inside of it add all the process.env related props
import Config from './config';

// Make a new mongo instance
const mongo = new Mongo({
uri: Config.db.mongo.uri,
name: Config.db.mongo.name,
});

await mongo.connection;

// Make a collection class
class TodoCollection extends BaseCollection {

public constructor() {
super('todos', mongo);
}

}

const todoCollection = new TodoCollection();

// Add
const todoCreated = await todoCollection.addOne({
name: 'todo',
description: 'description'
});

// Find one
const todo = await aCollection.findOne({
_id: todoCreated._id
});

todo;

// {
// _id: ObjectId('407f191e810c19729de860ea'),
// name: 'todo',
// description: 'description',
// added_at: 1777044477
// }

// etc.
```

### Dev

Install

```sh
yarn
```

Test

```sh
yarn test
```

#### One time local setup

Install docker and docker-compose

- https://docs.docker.com/get-docker
- https://docs.docker.com/compose/install

Make docker containers

```sh
yarn docker
```

(mac) Add lines below to */private/etc/hosts*
```
127.0.0.1 mongo1
127.0.0.1 mongo2
127.0.0.1 mongo3
127.0.0.1 mongo1-test
127.0.0.1 mongo2-test
127.0.0.1 mongo3-test
```

### Prod

Build

```sh
yarn build
```