MongoDB – популярная база данных NoSQL, обеспечивающая гибкость управления данными и манипулирования ими. В определенных сценариях может возникнуть необходимость добавить новое свойство ко всем документам в коллекции. В этой статье вы познакомитесь с различными методами выполнения этой задачи, используя разговорный язык и примеры кода.
Метод 1: использование оператора $set с командой Update Many
Один простой способ добавить новое свойство ко всем документам — использовать оператор $setв сочетании с командой updateMany(). Вот пример:
db.collection.updateMany({}, { $set: { newProperty: "default value" } })
Эта команда обновляет все документы в указанной коллекции, добавляя новое свойство с указанным значением по умолчанию.
Метод 2: использование метода forEach() в оболочке MongoDB
Другой метод предполагает использование метода forEach()в оболочке MongoDB для перебора каждого документа в коллекции и добавления нового свойства. Вот пример:
db.collection.find().forEach(function(doc) {
doc.newProperty = "default value";
db.collection.save(doc);
});
Этот код извлекает все документы в коллекции, перебирает каждый документ, добавляет новое свойство с присвоенным значением и сохраняет измененный документ обратно в коллекцию.
Метод 3. Использование API массовой записи
API массовой записи в MongoDB позволяет эффективно выполнять несколько операций записи. Вы можете использовать этот API для добавления нового свойства ко всем документам в коллекции. Вот пример:
const bulkOps = [];
db.collection.find().forEach(function(doc) {
const updateOp = {
updateOne: {
filter: { _id: doc._id },
update: { $set: { newProperty: "default value" } }
}
};
bulkOps.push(updateOp);
});
db.collection.bulkWrite(bulkOps);
Этот метод создает массив операций обновления, используя тип операции updateOne, и помещает их в массив bulkOps. Наконец, команда bulkWrite()выполняет все операции обновления за один пакет.
Добавить новое свойство ко всем документам в MongoDB можно различными способами. Независимо от того, предпочитаете ли вы использовать команды прямого обновления, оболочку MongoDB или API массовой записи, в вашем распоряжении есть несколько вариантов. Выберите метод, который лучше всего соответствует вашим требованиям, и наслаждайтесь гибкостью бессхемной природы MongoDB.