packages/moleculer-db-adapter-mongoose/README.md
![Moleculer logo](http://moleculer.services/images/banner.png)
# moleculer-db-adapter-mongoose [![NPM version](https://img.shields.io/npm/v/moleculer-db-adapter-mongoose.svg)](https://www.npmjs.com/package/moleculer-db-adapter-mongoose)
Mongoose adapter for Moleculer DB service
## Features
## Install
```bash
$ npm install moleculer-db moleculer-db-adapter-mongoose mongoose@6.5.4 --save
```
## Usage
```js
"use strict";
const { ServiceBroker } = require("moleculer");
const DbService = require("moleculer-db");
const MongooseAdapter = require("moleculer-db-adapter-mongoose");
const mongoose = require("mongoose");
const broker = new ServiceBroker();
// Create a Mongoose service for `post` entities
broker.createService({
name: "posts",
mixins: [DbService],
adapter: new MongooseAdapter("mongodb://127.0.0.1/moleculer-demo"),
model: mongoose.model("Post", mongoose.Schema({
title: { type: String },
content: { type: String },
votes: { type: Number, default: 0}
}))
});
broker.start()
// Create a new post
.then(() => broker.call("posts.create", {
title: "My first post",
content: "Lorem ipsum...",
votes: 0
}))
// Get all posts
.then(() => broker.call("posts.find").then(console.log));
```
## Options
**Example with connection URI**
```js
new MongooseAdapter("mongodb://127.0.0.1/moleculer-db")
```
**Example with URI and options**
```js
new MongooseAdapter("mongodb://db-server-hostname/my-db", {
user: process.env.MONGO_USERNAME,
pass: process.env.MONGO_PASSWORD,
keepAlive: true
})
```
# Test
```
$ npm test
```
In development with watching
```
$ npm run ci
```
# License
The project is available under the [MIT license](https://tldrlegal.com/license/mit-license).
# Contact
Copyright (c) 2016-2022 MoleculerJS
[![@moleculerjs](https://img.shields.io/badge/github-moleculerjs-green.svg)](https://github.com/moleculerjs) [![@MoleculerJS](https://img.shields.io/badge/twitter-MoleculerJS-blue.svg)](https://twitter.com/MoleculerJS)