Удалить элемент массива, имеющий значение ключа объекта mongoose - PullRequest
0 голосов
/ 28 июня 2018

Вот моя коллекция:

{
"_id":"5b3385af20b7dc2b008ef5b9",
"name":"C",
"distances":[{"_id":"5b3460b05b2edc1bbcb0f362",
"distance":7,
"waypoint":"5b3385af20b7dc2b008ef5b9",
"status":"available"},
{"_id":"5b3460b05b2edc1bbcb0f361",
"distance":4,
"waypoint":"5b3460a15b2edc1bbcb0f360",
"status":"available"}],
"createdAt":"2018-06-27T12:40:15.457Z",
"updatedAt":"2018-06-27T12:57:50.191Z",
"__v":0
}

Давайте сосредоточимся только на массиве расстояний, то есть:

"distances":[{"_id":"5b3460b05b2edc1bbcb0f362",
"distance":7,
"waypoint":"5b3385af20b7dc2b008ef5b9",
"status":"available"},
{"_id":"5b3460b05b2edc1bbcb0f361",
"distance":4,
"waypoint":"5b3460a15b2edc1bbcb0f360",
"status":"available"}]

Я хочу удалить объект и обновить массив расстояний, который имеет "waypoint":"5b3460a15b2edc1bbcb0f360"

пока я пробовал:

Model.update( {'_id': model._id}, { $pullAll: {distances: [{'waypoint': req.body.id}] } });

это не работает. Пожалуйста, предложите выход.

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете использовать $ pull of MongoDB

db.collection.update(
  { },
  { $pull: { distances:  { waypoint:  req.body.id} } },
)

{multi: true}: добавление этого в запросе выше удалит все записи, соответствующие {waypoint: req.body.id}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...