从不同的架构中查找文档

时间:2015-02-09 19:09:33

标签: node.js mongodb mongoose

我目前正在创建一个应该管理不同人群的Web服务。因此,我创建了一个Customer-Schema,MongoDB中的每个Document(不同的Schema)都获得了一个字段customer。现在,如果我想删除客户,我必须删除与所述客户相关的所有文档。我的问题是,如果不使用Schema.remove({customer: customerId})连续调用所有模式,我就不知道如何做到这一点。 是否有一个"全球"删除/查找搜索每个文档的命令?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

不幸的是没有。

这必须按照集合进行。

一般认为,删除数据库中的文档是一个坏主意,除非它是队列,因此mark将用户视为非活动状态通常更好,而不是删除他们和他们所有的文件。

答案 1 :(得分:0)

通过laggingreflex提供的链接,我提出了一个解决方案:

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);
      })
    }
  });
}

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