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)
@格内库斯