Javascript MongoDB在将文档插入数据库之前清空集合
我试图实现一个函数,在每次将文档填充到数据库时清空集合。这对我不管用。我也尝试过使用Javascript MongoDB在将文档插入数据库之前清空集合,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我试图实现一个函数,在每次将文档填充到数据库时清空集合。这对我不管用。我也尝试过使用async.series,但仍然没有成功。为什么下面的代码不起作用?输出总是带有db.users.find().count()给了我0 function emptyThenInsert(db) { UserSchema.collection.remove({}, function(err) { if(err) console.log(err); UserSchema.collection.in
async.series
,但仍然没有成功。为什么下面的代码不起作用?输出总是带有db.users.find().count()
给了我0
function emptyThenInsert(db) {
UserSchema.collection.remove({}, function(err) {
if(err) console.log(err);
UserSchema.collection.insert(db, function(err, data) {
console.log(data);
if (err) console.log(err);
UserSchema.collection.find({}, function(err, data) {
console.log(data);
if (err) console.log(err);
});
});
});
}
如果我取出
UserSchema.collection.remove
这似乎对我有效
function emptyThenInsert(db) {
UserSchema.remove({}, function(err) {
if(err) console.log(err);
UserSchema.collection.insert(db, function(err, data) {
if (err) console.log(err);
UserSchema.collection.find({}, function(err, data) {
if (err) console.log(err);
});
process.exit(1);
});
});
}
尝试使用“写关注点”:
UserSchema.collection.insert(db, {w:1}, function(err, data) {
您尝试过collection.drop()吗?这是清空集合而不是单个文档的最快方法。我试过了,仍然不起作用@Saleem不确定为什么在
remove
之后不调用insert
。您能解释一下为什么尝试插入“db”而不是文档或文档数组吗?db
只是一个文档名。我可以将其更改为doc
或其他内容@如果没有更多的上下文,这是很难猜测的。可能您的程序在调用emptyThenInsert后直接退出。由于您没有等待调用完成,这就解释了为什么您从未看到插入发生。您是否能够发现它最初不起作用的原因?如果您能提供一点说明,这将有助于下一个查看此解决方案的人。可能是UserSchema.collection.remove
和UserSchema.remove之间的差异。我还添加了过程。插入完成后退出(1)
@格内库斯