如何删除和添加到Mongoose中的数组? (的NodeJS)

时间:2017-08-21 19:22:02

标签: arrays node.js mongodb mongoose

我正在尝试根据其中的差异更新数组。

例如,我有这个:

...
tags: ['foo', 'bar'],
...

我想用以下模型数组 ['foo','baz'] 更新它,以便它变成:

...
tags: ['foo', 'baz'],
...

正如你所看到的,它会在模型​​数组中留下'foo',但它会取出'bar',它会添加'baz',因为它在模型数组中。

现在,我目前正在做的是:

$addToSet: {
  tags: {
    $each: req.body.conversation.tags
  }
}

哪个好,仅适用于添加标记... 不删除请求正文中提供的任何标记。我应该如何构建我的查询,以便我能够动态添加和删除我的数组中的任何项没有重复?

感谢任何指导。

谢谢。

1 个答案:

答案 0 :(得分:0)

然后,您可以使用slice命令使用与此相同的技术删除'bar'

{ $slice: [ [ 1, 2, 3 ], 2 ] }将返回[1, 2]

将切片的数组保存为新数组,然后只需将新变量推送到数组。

不要认为有一个功能可以实现这一目标。