1.1.30 • Published 1 year ago
mongoose-just v1.1.30
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