我目前正在开发一个Node.js应用程序。我正在使用连接-蒙戈与快车来处理我的会话商店。我也在使用猫鼬进行其他数据库操作。
但是,当我重新启动服务器以测试新功能时,旧的会话数据仍然存在。这会导致数据不一致和一些棘手的错误。
因此,当服务器第一次启动时,我希望能够清除Mongo数据库中会话集合中的所有数据。
我知道,使用猫鼬,我可以做这样的事情来清理一个集合:
User.remove({}, function (error) {
console.log('Emptied user collection')
});但是,我不知道如何在不声明其模式的情况下获得对集合的引用。
有人知道我该怎么做吗?还是我应该采取完全不同的方法来处理这一切呢?
发布于 2014-06-25 21:51:58
好吧,我想我找到了一些解决问题的方法。
实际上,在不声明其模式的情况下获得对集合的引用是相当简单的。在我问这个问题之前我不知道我怎么没有在我的研究中找到这个.因此,这是我一直在问的问题的完整解决方案:
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()。
https://stackoverflow.com/questions/24416953
复制相似问题