Transaksi MongoDB, yang diperkenalkan dengan versi 4.0, menyediakan sifat atom, konsistensi, pengasingan, dan ketahanan (asid) untuk operasi dalam satu sesi. Mereka memastikan bahawa satu set operasi sama ada semua berjaya atau semua gagal bersama, menghalang kemas kini separa dan mengekalkan integriti data. Transaksi terutamanya diuruskan menggunakan objek session
. Inilah pecahan cara menggunakannya:
1. Memulakan transaksi: Anda memulakan transaksi dengan membuat sesi klien dan memulakan transaksi dalam sesi tersebut. Ini biasanya dilakukan menggunakan keupayaan pemandu MongoDB. Sebagai contoh, dalam pemandu python:
<code class="python">from pymongo import MongoClient, ReadPreference client = MongoClient('mongodb://localhost:27017/') db = client.mydatabase session = client.start_session() with session.start_transaction(): # Perform operations within the transaction result1 = db.collection1.insert_one({"name": "Example"}, session=session) result2 = db.collection2.update_one({"key": "value"}, {"$set": {"field": "updated"}}, session=session) # ... more operations ... session.commit_transaction() # Or session.abort_transaction() if an error occurs client.close()</code>
2. Melaksanakan Operasi: Semua operasi yang dimaksudkan untuk menjadi sebahagian daripada urus niaga mesti dilaksanakan dalam with session.start_transaction():
blok dan secara eksplisit lulus objek session
ke setiap operasi. Ini memastikan mereka semua adalah sebahagian daripada unit atom yang sama.
3. komit atau abort: Selepas semua operasi selesai, anda sama ada melakukan transaksi menggunakan session.commit_transaction()
untuk membuat perubahan kekal atau membatalkan transaksi menggunakan session.abort_transaction()
untuk melancarkan semula sebarang perubahan. Pengendalian ralat adalah penting; Sekiranya mana -mana operasi dalam blok gagal, urus niaga akan secara automatik membatalkan melainkan secara jelas dikendalikan sebaliknya.
Untuk memaksimumkan keberkesanan dan kecekapan urus niaga MongoDB, ikuti amalan terbaik ini:
with
kenyataan) untuk menjamin pembersihan. Ya, urus niaga MongoDB boleh merangkumi pelbagai koleksi dalam pangkalan data yang sama. Seperti yang ditunjukkan dalam contoh di atas, operasi pada collection1
dan collection2
adalah sebahagian daripada urus niaga yang sama. Kuncinya ialah semua operasi dalam blok transaksi mesti berada dalam pangkalan data yang sama. Transaksi tidak boleh merangkumi pelbagai pangkalan data.
Walaupun kuat, urus niaga MongoDB mempunyai beberapa batasan:
Ingatlah untuk berunding dengan dokumentasi MongoDB rasmi untuk maklumat terkini dan amalan terbaik yang berkaitan dengan urus niaga.
Atas ialah kandungan terperinci Bagaimana saya menggunakan transaksi di mongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!