使用$ elemMatch和$ arrayFilters将对象推入嵌套数组中

时间:2019-06-22 10:29:02

标签: arrays mongodb mongoose

我一直在尝试使用mongoose update(),$ elemMatch和$ arrayfilters将对象推入嵌套数组中。

以下是架构:

    var details = new Schema({
    var1: { type: String, required: true },
    array1: [{
        var2: { type: String, required: true },
        array2: [{
            var3: { type: String, required: true },
            array3: [{
                    a: { type: String, required: true },
                    b: { type: Number, required: true },
                    c: { type: Date, required: true }
                }]
            }]
        }]
    })

这是我编写的要在array3中推送对象的猫鼬代码:


    Details.update(
                      {
                        var1: value1,
                        array1: {
                          "$elemMatch": {
                            var2: value2,
                            "array2.var3": value3
                          }
                        }
                      },
                      {
                        "$push": {
                "array1.$[outer].array2.$[inner].array3": {
                            a: valueOfa,
                            b: valueOfb,
                            c: valueOfc
                          }
                        }
                      },
                      {
                        "arrayFilters": [{ "outer": value2}, { "inner": value3}]
                      }, function (err, data) {
                        if (err) {
                          console.log('Error!', err);
                          response.sendStatus(500)
                        } else {
                          console.log('pushed')
                          response.sendStatus(200)
                        }
                      }
                    )

我没有任何错误!我的状态为200。但是没有将对象推入array3中。这里需要一些帮助。

0 个答案:

没有答案