首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过lodash和save()删除模型数据,不能在mongodb中持久化模型

通过lodash和save()删除模型数据,不能在mongodb中持久化模型
EN

Stack Overflow用户
提问于 2020-04-12 07:22:22
回答 1查看 24关注 0票数 0

我正在尝试从User集合中删除一个对象,如下所示

代码语言:javascript
运行
复制
router.post('/accept-trades', function (req, res, next) {
  const {senderName, receiverName, senderId} = req.body;
  const user = req.user;
  console.log(senderName, receiverName);
  if (senderName) {
    User.findOne({ name: senderName })
    .then(sender => {
      _.remove(user.receivedTradeRequest, {username: senderName});
      _.remove(sender.sentTradeRequest, {username: receiverName});

      console.log('user.receivedTradeRequest', user.receivedTradeRequest);
      console.log('\n\nuser.sentTradeRequest', user.sentTradeRequest);

      async.parallel([
        function (cb) {
          user.save()
          .then(isSave => {
            cb(null, true);
          })
          .catch(err => {
            cb(err, null);
          });
        },
        function (cb) {
          sender.save()
          .then(isSave => {
            cb(null, true);
          })
          .catch(err => {
            cb(err, null);
          });
        }
      ], (err, results) => {
          if (err) {
            return res.status(500).json({
              message: 'Error: Trade is invalid as Card is already traded!',
            });
          }
          res.send('done');
          //res.redirect('/trade');
      });
    })
    .catch(err => {
      throw err;
    });
  } else {
    return res.status(500).json({
      message: 'Only accessible to logged in users!',
    });
  }
});

这里,用户是通过req.user访问的(我使用的是passport)。

当我删除登录用户后,user.receivedTradeRequest和sender.sentTradeRequest打印的空数组是正确的行为。

但是当我看到mongodb时,用户名的数组仍然存在。

你能建议一下代码有什么问题吗?

PS:我知道mongodb的$pull是用来移除的。我正在对用户数据做一些其他的计算,所以必须使用上面的方法。

EN

Stack Overflow用户

发布于 2020-04-12 15:00:34

我可以通过在删除元素后重新分配数组来解决它。用_.filter代替_.remove解决了这个问题。

有一件事我不明白,那就是lodash _.remove会在删除后更新原始数组,但这里显然不是这样。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61164925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档