Удалить элемент из массива - PullRequest
1 голос
/ 31 января 2020

Как я могу l oop через массив и удалить указанный c элемент, основанный на поле.

Вот мой макет - он находится в коллекции под названием case:

** Коллекция содержит идентификатор компании, case [Array], lastModified **

enter image description here

Так что мне придется использовать агрегат, чтобы развернуть дела, а затем искать номер дела, где он равен '17':

db.cases.aggregate([
    { $match: { companyID: 218}},
    { $unwind: '$cases' },
    { $match: {'cases.casenumber': '17'} }
])

Возвращает:

enter image description here

Но сейчас Я хочу удалить только этот указанный c элемент.

Спасибо.

1 Ответ

0 голосов
/ 31 января 2020

Вы можете использовать запрос updateMany. Первый аргумент - это соответствие , второй - action .

$ pull - это специальное ключевое слово, которое удаляет соответствующие элементы из массивов. .

   db.collection.updateMany({
       companyID: 218,
    }, {
       $pull: {
          cases: {
             casenumber: 17,
          },
       },
    })

https://docs.mongodb.com/manual/reference/method/db.collection.updateMany/

https://docs.mongodb.com/manual/reference/operator/update/pull/


Пример из do c:

db.profiles.update( { _id: 1 }, { $pull: { votes: { $gte: 6 } } } )
...