Простые способы перемещения документов из MongoDB в другую коллекцию

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

Метод 1: использование команд insertManyи deleteMany.
Один простой метод перемещения документов — использование команд insertManyи deleteManyкоманд. Этот подход предполагает копирование нужных документов в новую коллекцию и последующее удаление их из исходной коллекции.

Пример кода:

const sourceCollection = db.sourceCollection;
const targetCollection = db.targetCollection;
const documentsToMove = sourceCollection.find({/* Add your query conditions here */});
targetCollection.insertMany(documentsToMove);
sourceCollection.deleteMany({/* Add the same query conditions here */});

Метод 2: использование платформы агрегации
Среда агрегации MongoDB предоставляет мощные инструменты для манипулирования данными, включая перемещение документов между коллекциями. Используя этап $out, вы можете создать новую коллекцию с нужными документами, сохранив их структуру.

Пример кода:

db.sourceCollection.aggregate([
  { $match: {/* Add your query conditions here */} },
  { $out: "targetCollection" }
]);

Метод 3. Использование API массовой записи
Если вы имеете дело с большим количеством документов, использование API массовой записи может повысить производительность. Этот метод позволяет эффективно передавать документы в больших объемах, создавая серию операций записи.

Пример кода:

const bulkOps = [];
const cursor = db.sourceCollection.find({/* Add your query conditions here */});
cursor.forEach(document => {
  bulkOps.push({ insertOne: { document: document } });
});
db.targetCollection.bulkWrite(bulkOps);

Перемещение документов между коллекциями в MongoDB можно выполнить несколькими способами. Предпочитаете ли вы простые операции вставки и удаления, использование возможностей Aggregation Framework или API массовой записи для эффективной передачи, выбор зависит от ваших конкретных требований и размера набора данных. Используя примеры кода и методы, представленные в этой статье, вы сможете эффективно управлять своими коллекциями MongoDB и организовывать данные в соответствии со своими потребностями.