我有这样的事情:
Accounts.insertMany(topAccounts)
.then(function (result) {
console.log('Succesfully saved '+ result.length + ' documents... closing connection...')
mongoose.connection.close();
})
.catch(function(err){
console.log('oh shit');
console.log(err);
})
这会将保存的数据附加到我的收藏中。有没有办法覆盖它呢?在保存数据之前,我是删除集合的最佳解决方案吗?
答案 0 :(得分:0)
我一直处于这种情况,但是用于播种初始数据库数据。我发现了两种不同的解决方案:
删除集合 - output
这比删除大型集合中的所有文档更快 。 Mongoose会自动重新创建它,但我认为它不会自动确保创建索引
注意:当我这样做的时候,似乎有一种竞争条件,它没有立即下降。如果我调用了drop然后插入(如果我没记错的话)我最终得到了一个空集合。我只是在插入所有种子文档之前设置了1秒的超时,并且工作正常。
删除所有文件 - model.collection.drop()
这是对大型集合的非常慢的操作,因为每次删除文档时都必须更新索引。
话虽如此,我不知道您是如何使用model.remove()
的,但似乎您将其视为名称为TopAccounts
的名称 - 值对,并且值为一组TopAccounts。根据您使用这些内容的方式,您可能需要考虑将所有TopAccounts存储在单个文档中 - 这甚至可以让您能够及时返回并查看给定日期的热门帐户。
你可以存储这样的东西,然后按日期查询:
TopAccounts