首页 > 解决方案 > 如何向下迁移 MongoDB

问题描述

我正在使用migrate-mongo库。我需要向应用程序添加一些用户,以便我的同事可以开始处理它。我向上迁移,按预期添加用户,但 DOWN 不起作用。好吧,实际上,当我运行 DOWN 时,什么也没有发生,我也没有收到任何错误。

我的 package.json:

"migrate": "cd database && node index.js"

迁移文件本身的内容:

module.exports = {
  async up(db) {
    await db.collection('users').insertOne({
      'email':'ps@ps.com',
      'password':'$2a$10$VP6BKllje64JwyKU3.lBYumjjRQVvPsW/A5W9/XqleiDg4C1tZaB2',
      'name':'Hanah',
      'role': 'Content'
    });

    await db.collection('users').insertOne({
      'email':'wex@wex.com',
      'password':'$2a$10$VP6BKllje64JwyKU3.lBYumjjRQVvPsW/A5W9/XqleiDg4C1tZaB2',
      'name':'Vedran',
      'role': 'CustomerService'
    });
  },

  async down(db) {
    await db.collection('users').deleteOne({'email': 'ps@ps.com'});
    await db.collection('users').deleteOne({'email': 'wex@wex.com'});
  },
};

我已经按照作者的程序如何创建通用文件。

怎么了?

标签: node.jsmongodbexpressmigrate-mongo

解决方案


不确定这是否有帮助,但我已使用以下语法成功删除字段:

async down(db) {
    await db.collection('users').updateOne({'email': 'ps@ps.com'}, $unset: {'email': ''});
    await db.collection('users').updateOne({'email': 'wex@wex.com'}, $unset: {'email': ''});
}

推荐阅读