【问题标题】:mongoose update array ObjectId from an array from angular猫鼬从角度数组更新数组ObjectId
【发布时间】:2015-01-27 16:01:54
【问题描述】:

我正在将 ObjectId 从另一个数组中添加到一个数组中,该数组是我作为正文接收的。

exports.updateBasket = function (req, res) {
  Basket.findOne({ _id: req.params.id }, function (err, basket) {
    for(var i=0, len=req.body.length; i < len; i++) {
      basket.update({$addToSet: { "items": req.body[i] } }, { upsert: true, safe: true });
    }
    if (err) {
      res.send(err);
    }
    else {
      res.json({ message: 'Successfully added' });
    }
  });
};

我对此有 2 个问题:

  1. 以角度进行循环并有多个 PUT 是否有任何好处?
  2. 在删除 ObjectId 时如何更新同一个数组?

我想到的一种方法是循环必须删除的 ObjectId 并查看它们是否在对象的数组中,如果是,则删除它们。

另一种方法是在调用 PUT 时清除数组并使用新的 ObjectId 列表进行更新(这将是那里的那些减去删除的一个用户)。

感觉都不太对劲……

谢谢

【问题讨论】:

    标签: javascript angularjs node.js mongodb mongoose


    【解决方案1】:

    你的代码看起来有点奇怪。您在 req.params._id 上异步获取,但您正在排队 req.body.length 潜在的更新价值,但您甚至在从更新结果中得到响应之前就发送了“成功”。

    如果您想过滤数组,请查看lodash,如果您想异步处理多个更新并获得这些响应,请使用async 模块。

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 2015-04-29
      相关资源
      最近更新 更多