【问题标题】:How to migrate DOWN the MongoDB如何向下迁移 MongoDB
【发布时间】:2019-01-29 13:40:28
【问题描述】:

我正在使用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'});
  },
};

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

怎么了?

【问题讨论】:

  • 尝试使用 db.collections('users').drop() 而不是删除 Ones 来删除集合。
  • 这可行。我希望能够恢复,而不是放弃。
  • 对于显式数据输入和数据删除,请尝试编写种子。
  • 迁移工具网站上,例子很明确。

标签: node.js mongodb express migrate-mongo


【解决方案1】:

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

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': ''});
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 2011-06-01
    • 2018-10-18
    • 2019-05-15
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多