dobo-mongodb
Version:
MongoDB driver for Dobo
18 lines (15 loc) • 675 B
JavaScript
async function modelCreate ({ schema, options = {} }) {
const { getInfo } = this.app.dobo
const { instance } = getInfo(schema)
const { reduce } = this.app.bajo
await instance.db.createCollection(schema.name)
const model = instance.db.collection(schema.name)
for (const p of schema.properties) {
if (p.index || p.unique) await model.createIndex(p.name, p.unique ? { unique: true } : undefined)
}
for (const idx of schema.indexes ?? []) {
const fields = reduce(idx.fields, (obj = {}, i) => { obj[i] = 1; return obj }, {})
await model.createIndex(fields, idx.unique ? { unique: true } : undefined)
}
}
export default modelCreate