【问题标题】:want to delete a task from an array of object using Sequelize想要使用 Sequelize 从对象数组中删除任务
【发布时间】:2021-09-23 15:14:12
【问题描述】:

我的模型中有一个对象数组(任务)。我想使用 sequelize 从数组中删除一个任务并保存回 db(postgresql)。在这里,我试图找到将删除并更新我的数据库中的任务的任务的索引。但是我的数据库看不到更改。这是我的代码:

        var idx=0;
        for(var i=0;i<user.tasks.length;i++){
            if(user.tasks[i].task_id==req.params.task_id){
                idx=i;
                break;
            }
        }
        user.tasks.splice(idx,1);
        user.update({
            tasks:user.tasks
        }).then((user)=>{
            res.redirect("/seq/task/allTask")
        })
    })

【问题讨论】:

  • user.tasks.task_id 应该是user.tasks[i].task_id
  • @D.Seah 是的,应该是这样,但它仍然无法正常工作
  • 如果这是一个数组,你可以使用现代数组方法,比如 findIndex developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 或者更好,过滤:const itemIdToRemove = req.params.task_id; user.tasks = user.tasks.filter(t =&gt; t.task_id != itemIdToRemove);developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • @ChrisBaker 我的用于索引查找的 for 循环工作正常,但在 user.update() 不起作用之后。实际上在 user.update().then((user)=>{console.log(user.tasks)}) 之后也可以正常工作,但更改未在数据库中更新

标签: javascript node.js postgresql sequelize.js


【解决方案1】:

user.update() 内使用这个{tasks:Sequelize.fn('array_remove',Sequelize.col('tasks'),JSON.stringify(user.tasks[i]))}

【讨论】:

    【解决方案2】:

    let user_id = 2 
    let pinned_by_user = [1,2,4,5]
     let i = pinned_by_user.indexOf(user_id);
          if (pinned_by_user > -1)                                                  
                   {
                  pinned_by_user.splice(i, 1);
                   } 
     ViewLog.update({ 'pinned_by_user': db.sequelize.fn('array_remove',db.sequelize.col('pinned_by_user'), user_id) },{ 'where': { 'questionId': question_id } })

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    • Community Bot 不喜欢只有代码没有解释的答案,请为其他用户添加一些解释
    猜你喜欢
    • 2017-01-22
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2021-05-27
    • 2012-05-12
    相关资源
    最近更新 更多