Найти и обновить вложенный уровень - PullRequest
5 голосов
/ 30 апреля 2019

Я хочу найти и обновить значение количества до 3 , где мой идентификатор равен "5cc6d9737760963ea07de411"

мои данные:

[
    {
        "products" : [ {
                    "id" : "5cc6d9737760963ea07de411",
                    "quantity" : 1,
                    "totalPrice" : 100,
                }, 
                {
                    "id" : "5cc6d9737760963ea07de412",
                    "quantity" : 2,
                    "totalPrice" : 200,
                }
        ],
        "isCompleted" : false,
        "_id" : "5cc7e4096d7c2c1f03570a2f"
    },
    {
        "products" : [{
                    "id" : "5cc6d9737760963ea07de414",
                    "quantity" : 1,
                    "totalPrice" : 100,
                }, 
                {
                    "id" : "5cc6d9737760963ea07de4133",
                    "quantity" : 2,
                    "totalPrice" : 200,
                }
        ],
        "isCompleted" : false,
        "_id" : "5cc7e4096d7c2c1f03570a2f"
    }

]

я пытался:

Schema.findOneAndUpdate({_id: ""},{ "products": {"quantity": 3}})

но это не работает.

1 Ответ

3 голосов
/ 30 апреля 2019

Вы должны использовать обозначение .dot вместе с позиционным оператором $ здесь

Schema.findOneAndUpdate(
  { "products.id": "5cc6d9737760963ea07de411" },
  { "products.$.quantity": 3 }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...