1.1.30 • Published 1 year ago

mongoose-just v1.1.30

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

mongoose-just

BETA VERSION - DEV

Installing

npm install mongoose-just

Usage

TypeScript

import createMogooseStore, { Types } from 'mongoose-just'
import dbStoreTypes from './types'

const dbName = "dbtest"

// Map
const dbMongooseMap = [{
  dbName,
  host: 'localhost',
  port: 27017,
  // user: 'user',
  // password:'password',
  collections: [
    {
      name: 'users',
      shema: {
        login: {
          type: String,
          unique: true,
          index: true
        }
        email: {
          type: String,
          unique: true
        },
        phone: {
          type: String,
           unique: true         
        }        
      }
    },
    {
      name: 'options',
      shema: {
        key: {
          type: String,
          unique: true
        },
        value: Types.Mixed
      },
      // shemaOptions: {
      //   isUpdatedAt: true // default options
      // },
      defaultDocs: [{
        key: 'version',
        value: '0.0.1',
        __options: {
          ignores: ['value']
        }
      }],
      prototypes: {
        getListKeys: function () {
          return new Promise(async (resolve) => {
            this.find().then(resolve)
          })
        }
      }
    },
    {
      name: 'lists',
      shema: {
        time: {
          type: Date,
          index: true
        },
        value: {
          type: Types.Mixed,
          index: true
        }
      },
      shemaOptions: {
        setIndex: [[{ time: 1, value: 1 }, { unique: true }]]
      }
    }
  ]
}]


const dbStore = createMogooseStore(dbMongooseMap) as dbStoreTypes;

// Event Connected 
dbStore.on(`connected`, props => {
  console.log('connected', props)
})

// Event Connected `dbName`
dbStore.on(`connected.${dbName}`, async (db:dbMogooseStore) => {
  console.log(`connected.${dbName}`)
  let version = await db.options.getKey('version')
  console.log(`${dbName}.options.version:`,version)
  
  let docs = db.lists.find({ select: { time: 1 }})  
})

// Event reconnect db
// dbStore.on(`reconnect`, props => {
//   console.log(reconnect, props)
// })

// Event disconnect db
dbStore.on(`disconnected`, data => {
  console.log('disconnected', data)
})

// Event disconnect `dbName`
// dbStore.on(`disconnect.${dbName}`, () => {
//   console.log(`disconnect.${dbName}`)
// })

// Event error store
dbStore.on(`error`, error => {
  console.log('error:', error)
})


// Event Connected all db
dbStore.on('connectedAll', async store => {
  
  console.log('connected all data bases')

  await store[dbName].options.setKey('version', "0.0.11")
  // let doc = await store[dbName].options.findOne({ find: { key: "version", selected: { key:true, value: true } } })  
  // console.log(doc)
  let version = await store[dbName].options.getKey('version')  
  // console.log(version) 

  let docs = await store[dbName].options.listKeys()
  console.log(docs)

})

// connect to db
dbStore.connect()

export default dbStore

Types

.types.ts

import { dbMogooseStore, collectionType, dbMongooseStoreDefaultType }  from 'mongoose-just/types'


interface ObjectKeysType {
    key:string;
    value:any;
}

// dbtest.options.listKeys
interface dbTestOptionsType {
    listKeys: () => ObjectKeysType[];
}

// dbtest
interface dbStoreTest extends dbMogooseStore {
    users: collectionType,
    options: collectionType & dbTestOptionsType;
}

// dbStore
interface dbStoreTypes extends dbMongooseStoreDefaultType {
    dbtest: dbStoreTest;
}

export default dbStoreTypes
1.1.29

1 year ago

1.1.28

1 year ago

1.1.30

1 year ago

1.1.27

1 year ago

1.1.26

1 year ago

1.1.25

1 year ago

1.1.24

1 year ago

1.1.23

1 year ago

1.1.22

1 year ago

1.1.21

1 year ago

1.1.20

1 year ago

1.1.19

1 year ago

1.1.18

1 year ago

1.1.17

1 year ago

1.1.16

1 year ago

1.1.15

1 year ago

1.1.14

1 year ago

1.1.13

1 year ago

1.1.12

1 year ago

1.1.11

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.9

1 year ago

1.0.83

1 year ago

1.0.82

1 year ago

1.0.81

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago