从不同的模式中查找文档

Find Documents from Different Schemas

我目前正在创建一个应该管理不同人群的网络服务。因此,我创建了一个客户模式,我的 MongoDB 中的每个文档(不同的模式)都有一个字段 customer。现在如果我想删除一个客户,我必须删除与该客户相关的所有文档。我的问题是,如果不使用 Schema.remove({customer: customerId}) 连续调用所有模式,我不知道该怎么做。 是否有 "global" remove/find 命令可以搜索每个文档?

感谢您的帮助。

很遗憾没有。

这将必须逐个收集完成。

一般认为删除数据库中的文档是个坏主意,除非它是一个队列,所以通常更好的主意是 mark 说用户不活跃,而不是删除他们和他们所有的文档。

借助laggingreflex提供的link,我想出了一个解决方案:

var modelNames = mongoose.connection.modelNames();
var counter = modelNames.length;
for (var i in modelNames){
  result.model(modelNames[i]).remove({customer: req.params.id}, function(err){
    if(err) { return handleError(res, err); }
    counter--;
    if (!counter){
      result.remove(function(err) {
        if(err) { return handleError(res, err); }
          res.send(204);
      })
    }
  });
}

如果有人有更好的主意,我很乐意看到。 :-)