【问题标题】:Clear the Session Store清除会话存储
【发布时间】:2014-08-16 12:07:48
【问题描述】:

我目前正在开发一个 Node.js 应用程序。我正在使用 connect-mongo 和 Express 来处理我的会话存储。我也在使用 Mongoose 进行其他数据库操作。

但是,当我重新启动服务器以测试新功能时,旧会话数据仍然存在。这会导致数据不一致和一些棘手的错误。

所以当服务器第一次启动时,我希望能够从我的 Mongo 数据库中的会话集合中清除所有数据。

我知道,使用 Mongoose,我可以执行以下操作来清除集合:

User.remove({}, function (error) {
  console.log('Emptied user collection')
});

但是,我不知道如何在不声明其架构的情况下获取对集合的引用。

有谁知道我怎样才能做到这一点?还是我应该采取一些完全不同的方法来处理所有这些?

【问题讨论】:

    标签: javascript node.js mongodb session mongoose


    【解决方案1】:

    好的,所以我想我找到了一些解决问题的方法。

    在不声明其架构的情况下获取对集合的引用实际上非常简单。在我问这个问题之前,我不确定我是如何在研究中没有发现这一点的......所以这是我一直在问的完整解决方案:

    mongoose.connection.db.collection('sessions', function (error, collection) {
      if (error) {
        console.error('Problem retrieving sessions collection:', error);
      } else {
        collection.remove({}, function (error) {
          if (error) {
            console.error('Problem emptying sessions collection:', error);
          } else {
            console.log('Emptied sessions collection');
          }
        });
      }
    });
    

    但是,就我而言,我实际上想从数据库中删除所有数据,并尝试一次收集一个(因为我知道如何清除一个集合)。相反,我只需要使用db.dropDatabase()

    【讨论】:

      猜你喜欢
      • 2022-08-09
      • 2015-02-20
      • 1970-01-01
      • 2016-05-19
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      相关资源
      最近更新 更多