C++
Окружение и базовый CRUD
Окружение создаётся конструктором env_managed и закрывается само. В write-транзакции открывается таблица и сохраняются пары ключ–значение, затем в read-only транзакции значение читается. Перечисление put_mode выбирает режим записи: upsert перезаписывает значение, если ключ уже есть.
#include <mdbx.h++>
#include <iostream>
#include <string>
int main() {
// RAII: окружение закроется само при выходе из области видимости
mdbx::env_managed env("mydb.mdb",
mdbx::env_managed::operate_parameters{});
// write-транзакция фиксируется при выходе из блока
{
auto txn = env.start_write();
auto db = txn.open_map("records");
txn.put(db, "answer", "42", mdbx::put_mode::upsert);
txn.put(db, "greeting", "hello, cosmos", mdbx::put_mode::upsert);
txn.commit();
}
// read-only транзакция даёт согласованный снимок данных
auto txn = env.start_read();
auto db = txn.open_map("records");
auto data = txn.get(db, "answer");
std::cout << "answer = "
<< std::string(data.char_ptr(), data.length()) << "\n";
}