Javascript 如何从其他类调用delete

Javascript 如何从其他类调用delete,javascript,angularjs,mongodb,mean-stack,Javascript,Angularjs,Mongodb,Mean Stack,我不知道在创建时如何删除另一个MongoDB方案中的数据 我在mean.js堆栈上运行 exports.create = function(req, res) { var sign = new Sign(req.body); sign.save(function(err) { if (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err)

我不知道在创建时如何删除另一个MongoDB方案中的数据

我在mean.js堆栈上运行

exports.create = function(req, res) {
  var sign = new Sign(req.body);

  sign.save(function(err) {

    if (err) {
      return res.status(400).send({
        message: errorHandler.getErrorMessage(err)
      });
    } else {
      sign.timesheets.forEach(function(entry) {
        console.log(entry._id);
      });

      res.jsonp(sign);
    }
  });
};
在这里,我打电话创建一个标志。符号包括一些字符串和带有时间表对象的数组“timesheets”

我还得到了一个时间表方案,我想从时间表方案中删除我的签名中包含的所有时间表对象

这是我的时间表删除控制器:

exports.delete = function(req, res) {
  var timesheet = req.timesheet;

  timesheet.remove(function(err) {
    if (err) {
      return res.status(400).send({
        message: errorHandler.getErrorMessage(err)
      });
    } else {
      res.jsonp(timesheet);
    }
  });
};
对于sign中的每个时间表,我如何从min sign controller调用它

编辑

路线:

module.exports = function(app) {
    var sign = require('../../app/controllers/sign.server.controller');
    var timesheets = require('../../app/controllers/timesheets.server.controller');


    app.route('/sign')
      .post(sign.create, timesheets.deleteAll);

    delete all

    exports.deleteAll = function(req, res) {
      var timesheet = req.timesheet;
      timesheet.timesheets._id.forEach(function(entry) {
        entry.remove(function(err) {
          console.log(entry);
          if (err) {
            return res.status(400).send({
              message: errorHandler.getErrorMessage(err)
            });
          } else {
            res.jsonp(entry);
          }
        });
      });
    };

它运行时,我可以在控制台中看到id,但它不会删除任何内容。

如果您将其实现为每个SignSchema文档中的TimesheetSchema文档数组,那么删除父文档将带走其中的所有内容


如果将其存储为引用另一个集合中的文档的ID数组,则必须逐个检查并删除它们。但我认为,如果你不需要做任何花哨的事情,最好采用第一种方法。这是因为您可以轻松地处理删除操作,而且从语义和性能角度来看,一次检索处理“符号”所需的所有内容更有意义。

如果您通过API访问此控制器,试一下Mike在我的问题下的解决方案:@karolkochan完成了,现在把它放在dosen不删除时间表上:/I认为你的代码
条目。在
deleteAll
函数中删除(…)
不知道条目引用了你的时间表模型。因此,您需要运行类似于
Timesheed.remove({u id:{$in:your_array},false)的程序
(参考mongo docs)此处
您的_数组
在本例中是
时间表。时间表
@karolkochan yea您是对的,现在看起来是这样,但如果它有多个时间表,则会崩溃,认为它是原因res.jsonp(时间表),在每次完成后如何将其更改为res?:)您可以尝试这样做:或者这样做:只需添加
索引
变量并检查返回响应对象的最后一个元素。