В MongoDB существует несколько методов создания или обновления документов в коллекции. Эти методы позволяют вам либо создать новый документ, если он не существует, либо обновить существующий. В этой статье мы рассмотрим различные подходы с примерами кода для эффективного достижения этой функциональности.
Метод 1: использование метода updateOne
db.collection('myCollection').updateOne(
{ _id: 'documentId' },
{ $set: { field: 'value' } },
{ upsert: true }
);
Этот метод обновляет документ с указанным _id, а если он не существует, он создает новый с помощью оператора $setи 8. Для параметраустановлено значение true.
Метод 2: использование метода findOneAndUpdate
db.collection('myCollection').findOneAndUpdate(
{ _id: 'documentId' },
{ $set: { field: 'value' } },
{ upsert: true, returnOriginal: false }
);
Метод findOneAndUpdateобновляет документ указанным _idи возвращает обновленный документ. Если документ не существует, он создает новый с помощью оператора $setи параметра upsert, установленного на true.
Метод 3: использование метода updateс опцией multi
db.collection('myCollection').update(
{ field: 'value' },
{ $set: { field: 'newValue' } },
{ upsert: true, multi: true }
);
Этот метод обновляет несколько документов с указанным условием и устанавливает для fieldновое значение. Если документы не существуют, он создает новые, используя для параметра upsertзначение true.
Метод 4. Использование метода bulkWriteдля пакетных операций
const operations = [
{ updateOne: { filter: { _id: 'documentId' }, update: { $set: { field: 'value' } }, upsert: true } },
// Add more operations here
];
db.collection('myCollection').bulkWrite(operations);
Метод bulkWriteпозволяет выполнять несколько операций в одном пакете. Используя параметр upsertс updateOne, вы можете эффективно создавать или обновлять документы.
Метод 5: использование метода findAndModify(устарело)
db.collection('myCollection').findAndModify({
query: { _id: 'documentId' },
update: { $set: { field: 'value' } },
upsert: true,
new: true
});
Метод
устарел и будет удален в будущих версиях MongoDB. Однако его по-прежнему можно использовать в более старых версиях.
В этой статье мы рассмотрели различные методы создания или обновления документов в MongoDB с примерами кода. Эти методы предоставляют эффективные способы создания и обновления документов, гарантируя, что вы сможете легко управлять своими данными. Используя такие методы, как обновление, массовая запись, а также операции поиска и изменения, вы можете эффективно достичь желаемой функциональности.