Как исправить ошибку «OperationFailure: поле BSON« insert.startTransaction »является неизвестным полем» после попытки вставить документ во время транзакции - PullRequest
0 голосов
/ 11 июля 2019

Я сделал репликацию на моем сервере, потому что mongoDB разрешает многодокументные транзакции только в репликации.После этого я попытался запустить этот код:

db_client = pymongo.MongoClient('localhost', 27000)
col = db_client['test_db']['test_col']
with db_client.start_session() as session:
    with session.start_transaction():
        for i in range(10):
            col.insert_one({'msg': i}, session = session)
            if i == 8:
                raise Exception

По моему мнению, он ничего не должен записывать в базу данных, потому что в блоке with session.start_transaction(): произойдет исключение, и он должен называться session.abort_transaction ().

Но я получил ошибку, которую не могу интерпретировать:

pymongo.errors.OperationFailure: BSON field 'insert.startTransaction' is an unknown field.
...