Как использовать updateMany для обновления всех нескольких документов - mongoDB

Итак, я создаю Nodejs API. Я хочу добавить продукты в коллекцию категорий для продуктов. В моей модели продукта есть несколько категорий в массиве,

Модель продукта

var productSchema = mongoose.Schema({
    productSKU: String,
    productName: String
    productCategory: Array,
});

Категория модели

var categorySchema = mongoose.Schema({
    categoryID: String,
    categoryName: String,
    product: [productSchema],
});

Я хочу добавить продукт в каждую отдельную категорию в коллекцию категорий из массива категорий в модели продукта. Как я могу добиться этого с помощью запроса mongoose updateMany?

ниже мой контроллер для заполнения коллекции категорий

    let query = {
        categoryID: categoryID
    }

    let update = {
        $push: {
            product: product,
        }
    }

    let options = {
        safe: true,
        new: true,
        upsert: true,
        multi: true
    }

 return CategoryProduct.updateMany(query, update, options).exec()

Просто для пояснения: вам не нужен запрос, который будет извлекать идентификаторы всех продуктов, у которых есть productCategory, которая включает в себя CategoryID, который вы в настоящее время просматриваете, а затем добавлять его в массив продуктов указанной категории?

BenSower 04.01.2019 15:19

объект продукта содержит массив категорий, я хочу заполнить коллекцию категорий продуктом на основе категорий в массиве категорий. Я бы предпочел вернуть обещание, поэтому буду использовать .exec

user10090131 04.01.2019 15:26
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
364
0

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