Удалить много элементов из массива документов в mongodb, которые соответствуют этому значению

Я пытаюсь удалить все документы из массива документов, которые соответствуют этому значению, но не могу понять,

Это мой запрос на удаление, который не работает, курсы — это массив, в котором мне нужно находиться, а код — это документ, который мне нужно проверить, чтобы увидеть его значение для удаления. Итак, если курсы.код == 123, то удалите и продолжайте что-то вроде этого.

 result = await mongoClient.db(DB_NAME).collection("technologies").deleteMany({ 'courses': {$in: 'courses.code'} });

Вот так он выглядит в моей коллекции.

"name": "Sass",
        "description": "Sass (Syntactically awesome style sheets) is a preprocessor scripting language that is interpreted or compiled into Cascading Style Sheets (CSS).",
        "difficulty":2,
        "courses":[
            {"code":"PROG2700","name":"Client Side Programming"},
            {"code":"PROG3017","name":"Full Stack Programming"}
        ]
    },

Любая помощь будет здорово, спасибо!

Да, я хочу удалить весь документ, поэтому имя и код, которые равны, например, внутри курсов, если код == PROG2700, удалите его и сделайте это для всех других кодов, которые соответствуют этому значению.

noobCoder 18.12.2020 11:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
491
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Вы можете фильтровать документы, содержащие поле, которое вы хотите обновить.

  • Делайте тесты перед обновлениями оригинальной коллекции.

После некоторых поисков я нашел этот метод:

const filter = { }
db.collection.update(filter,
{
  $pull: {
    "courses": {
      code: {
        $in: [
          "PROG3017",
          "PROG2700"
        ]
      }
    }
  }
},
{
  multi: true
})

Это извлекает любой элемент в массиве, где значением кода является $in массив.

Другие вопросы по теме