1.0.0 • Published 2 years ago

adapter-mongoose-driver v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

MongoDatabase

Este projeto tem por objetivo oferecer uma abstração das configurações de conexão e principais métodos da biblioteca Mongoose.js.

Instalação

A instalação deste pacote é feita através do NPM

  1. Adicione a referência do repositório privado através do arquivo ./.npmrc do PROJETO.
# ./.npmrc
registry=
always-auth=true

2. Adicione a biblioteca através do **NPM**.
```bash
# npm
npm install adapter-mongoose-driver --save

# yarn
yarn add adapter-mongoose-driver

Utilização

Para utilizar a biblioteca basta importar o módulo e fornecer as variáveis da instância do MongoDB que deseja-se conectar, a saber: host, username, password, database, port e sslKey. Vale lembrar que os parâmetros port e sslKey são opcionais, assumindo os valores 27017 e null respectivamente.

const getConnector = require('adapter-mongoose-driver');
const fs = require('fs');

const host = '127.0.0.1';
const username = 'root';
const password = 'root';
const port = 27017;
const database = 'admin';
let instance = null;

// SSL Key
const sslKey = fs.readFileSync(`${__dirname}/rds-combined-ca-bundle.pem`);

// Without SSL
instance = getConnector(host, username, password, database, port);

// With SSL
instance = getConnector(host, username, password, database, port, ssl);

Methods

getConnection (options = {})

Abre uma conexão com o banco MongoDB, fazendo uso dos parâmetros passados no construtor do módulo, além de permitir a passagem de parâmetros personalizados pelo objeto options.

const getConnector = require('adapter-mongoose-driver');

let instance = null;

// Without SSL
instance = getConnector(host, username, password, database, port);

const conn = await instance.getConnection();

closeConnection (conn)

Fecha uma conexão com a instancia do banco MongoDB.

const getConnector = require('adapter-mongoose-driver');

let instance = null;

// Without SSL
instance = getConnector(host, username, password, database, port);

const conn = await instance.getConnection();
await instance.closeConnection(conn);

getModel (conn, {name, schema, indexes = [], options = {}, virtuals = []})

Cria/Obtem o Model da collections enviada por parâmetro. Caso o model já tenha sido criado, este será reaproveitado

const getConnector = require('adapter-mongoose-driver');

let instance = null;

// Without SSL
instance = getConnector(host, username, password, database, port);

const conn = await instance.getConnection();

const schemaStruct = {
  name: 'topics', // collectionName
  schema: { // collectionStructure (Schema)
    name: {type: String, required: true},
    age: {type: String, required: true},
  },
  options: { // Mongoose Schema Options
    timestamps: true,
    toJSON: {virtuals: true},
    toObject: {virtuals: true},
  },
  indexes: [ // Collection Indexes
    {shortname: 1, learnPathId: 1, sessionId: 1},
  ],
  virtuals: [ // Mongoose Virtual Properties
    {property: 'likes', // Property name
      value: {ref: 'topics_likes', // Property Merge Option
        localField: '_id',
        foreignField: 'topic',
      },
    },
  ],
}

const Model = await instance.getModel(
  conn, schemaStruct
);

const doc = new Model({
    name: 'Talita',
    age: '22',
});

await doc.save();

await instance.closeConnection(conn);

getSchema (conn, {schema, indexes = [], options = {}, virtuals = []})

Cria o Schema dá Collection sem Criar o Model. Utilize este método apenas para usar de referência na construção de outros schemas (Embedded Collection).

const getConnector = require('adapter-mongoose-driver');

let instance = null;

// Without SSL
instance = getConnector(host, username, password, database, port);

const conn = await instance.getConnection();

const schemaStruct = {
  name: 'topics', // collectionName
  schema: { // collectionStructure (Schema)
    name: {type: String, required: true},
    age: {type: String, required: true},
  },
  options: { // Mongoose Schema Options
    timestamps: true,
    toJSON: {virtuals: true},
    toObject: {virtuals: true},
  },
  indexes: [ // Collection Indexes
    {shortname: 1, learnPathId: 1, sessionId: 1},
  ],
  virtuals: [ // Mongoose Virtual Properties
    {property: 'likes', // Property name
      value: {ref: 'topics_likes', // Property Merge Option
        localField: '_id',
        foreignField: 'topic',
      },
    },
  ],
}

const Schema = await instance.createSchema(
  conn, schemaStruct
);

await instance.closeConnection(conn);
1.0.0

2 years ago

0.0.1

3 years ago