UNPKG

@13w/miri

Version:

MongoDB patch manager

54 lines (52 loc) 1.77 kB
#### Migration manager ### Migrations folder structure * migrations/ * init/ * 01-create-collections.js ```javascript db.createCollection('users'); db.createCollection('goods'); ``` * 02-create-default-users.js ```javascript db.users.insertOne({firstName: 'foo', lastName: 'zoo'}); db.users.insertOne({firstName: 'baz', lastName: 'poo'}); ``` * 03-create-default-goods.js ```javascript db.goods.insertOne({name: 'lemon'}); db.goods.insertOne({name: 'orange'}); ``` * indexes/ * users.json ```json [ {name: 1} ] ``` * goods.json ```json [ [{name: 1}, { unique: true }] ] ``` * version-1/ * 01-02-2023-add-full-name.js ```javascript export const test = () => db.users.countDocuments({ fullName: { $exists: false } }); export const up = () => db.users.updateMany({ fullName: { $exists: false } }, [{ $set: { fullName: { $concat: ['$firstName', ' ', '$lastName'] } } }]) export const down = () => db.users.updateMany({}, {$unset: { fullName: 1 }}) ``` * 04-05-2023-add-user-age.js ```javascript export const test = () => db.users.countDocuments({ age: { $exists: false } }); export const up => () => db.users.updateMany({ age: { $exists: false } }, {$set: { age: 135 }}) export const down = () => db.users.updateMany({}, {$unset: { age: 1 }}) ``` * version-2/ * 05-08-2023-add-price-to-goods.js ```javascript export const test = () => db.goods.countDocuments({ price: { $exists: false } }); export const up => () => db.goods.updateMany({ price: { $exists: false } }, { $set: {price: 12.24} }) export const down = () => db.goods.updateMany({}, {$unset: { price: 1 }}) ```