如何向MongoDB发送请求以更新包含数组

时间:2017-02-23 04:10:58

标签: javascript node.js mongodb api mongoose

我正在尝试更新Mongo DB中包含数组的对象。该对象如下所示:

{id: 'idString',
propA: propA,
arrayB: [{propC: propC}, {propC: propD}, {propC: propE}]

我想发送请求将其更新为:

{id: 'idString',
propA: propA,
arrayB: [{propC: propABC}, {propC: propD}, {propC: propE}]

我能够通过这样做来实现它:

Object
.findByIdAndUpdate(req.params.id, {$set: req.body}})

白请求正文:

{id: 'idString',
propA: propA,
arrayB: [{propC: propABC}, {propC: propD}, {propC: propE}]

但是,有一种方法可以在请求正文发出请求时发送请求:

{id: 'idString',
arrayB: [{propC: propABC}]
如果我只更新此阵列中的一个项目,那么我不必包含整个数组?现在如果我找到了ByBedIdAndUpdate并在上面发送请求体,如果请求体中没有提到它们,它将删除数组的其余部分。

1 个答案:

答案 0 :(得分:0)

我在MongoDB的网站上找到了答案。您仍然使用$ set,但在请求正文中使用数组中元素的索引号。

latest Git For Windows

$set