# @lindorm-io/mongo

> Mongo and Repository tools for lindorm.io

Latest version **0.12.6** (published 2024-01-12) · AGPL-3.0-or-later license · 0 weekly downloads

## Install

```sh
npm install @lindorm-io/mongo
pnpm add @lindorm-io/mongo
yarn add @lindorm-io/mongo
bun add @lindorm-io/mongo
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.12.6 |
| Published | 2024-01-12 |
| First published | 2020-10-30 |
| Weekly downloads | 0 |
| License | AGPL-3.0-or-later |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 72.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | princejonn |

## Links

- npm: https://www.npmjs.com/package/@lindorm-io/mongo
- npm.io page: https://npm.io/package/@lindorm-io/mongo

## Dependencies (6)

- [mongodb](https://npm.io/package/mongodb.md) ^6.2.0
- [@lindorm-io/case](https://npm.io/package/@lindorm-io/case.md) ^0.2.0
- [@lindorm-io/core](https://npm.io/package/@lindorm-io/core.md) ^0.8.11
- [@lindorm-io/entity](https://npm.io/package/@lindorm-io/entity.md) ^0.3.14
- [@lindorm-io/errors](https://npm.io/package/@lindorm-io/errors.md) ^0.1.21
- [@lindorm-io/core-connection](https://npm.io/package/@lindorm-io/core-connection.md) ^0.1.21

## Recent versions

- 0.12.6 (latest) — 2024-01-12
- 0.12.5 — 2023-11-06
- 0.12.4 — 2023-06-01
- 0.12.3 — 2023-04-01
- 0.12.2 — 2023-03-30
- 0.12.1 — 2023-03-26
- 0.12.0 — 2023-03-24
- 0.11.14 — 2023-03-01
- 0.11.13 — 2023-02-02
- 0.11.12 — 2023-02-01
- 0.11.11 — 2023-01-18
- 0.11.10 — 2023-01-15
- 0.11.9 — 2023-01-15
- 0.11.8 — 2023-01-15
- 0.11.7 — 2023-01-13
- … 65 more at https://npm.io/package/@lindorm-io/mongo/versions

## README

# @lindorm-io/mongo

Mongo and Repository tools for lindorm.io packages.

## Installation

```shell script
npm install --save @lindorm-io/mongo
```

## Usage

### Mongo Connection

```typescript
const connection = new MongoConnection({
  hostname: "db.location.com",
  port: 27000,
  auth: { user: "user", password: "password" },
  database: "database",
});

await connection.connect();

const db = connection.client.db("database");
const collection1 = db.collection("collectionName1");
const collection2 = db.collection("collectionName2");

await connection.disconnect();
```

### Repository

```typescript
class EntityRepository extends LindormRepository<EntityAttributes, Entity> {
  public constructor(options: RepositoryOptions) {
    super({
      ...options,
      collectionName: "entity_name",
      indices: [
        {
          index: { entity_attribute_key: 1 },
          options: { unique: true },
        },
      ],
    });
  }

  protected createEntity(data: EntityAttributes): Entity {
    return new Entity(data);
  }
}

const repository = new EntityRepository({
  connection,
  logger: winstonLogger,
});

await repository.create(entity);
await repository.update(entity);
const entity = await repository.find({ filter });
const [e1, e2] = await repository.findMany({ filter });
await repository.remove(entity);
await repository.removeMany({ filter });
```

---
_Source: https://npm.io/package/@lindorm-io/mongo · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
