Saya menggunakan perpustakaan GMP untuk mengelola angka besar dalam kode c++. Saya juga menggunakan klien mongocxx untuk menghubungkan dan membuat pertanyaan ke database mongodb. Bagaimana cara menyimpan nomor mpz_t di database mongo? Atau lebih baik lagi, bagaimana cara mengubah mpz_t menjadi NumberberLong di mongodb?
Bagaimana cara menyimpan mpz_t dari gmlib di mongo db?
Jawaban (1)
Itu tergantung pada apa yang Anda rencanakan. MongoDB tidak memiliki tipe angka presisi yang berubah-ubah, jadi pada dasarnya Anda memiliki dua opsi:
Jika tipe angka cocok dengan bilangan bulat 64-bit, Anda dapat menggunakan fungsinya
unsigned long valint = mpz_get_ui(val);
// or
long valint = mpz_get_si(val);
untuk mengonversi angka menjadi bilangan bulat 64-bit dan menyimpannya dalam tipe data NumberLong
.
Jika tidak, Anda selalu dapat mengonversi angka val
menjadi string dengan
char *valstr = mpz_get_str(NULL, 10, val);
dan menyimpannya sebagai teks dalam database. Ini mungkin solusi paling aman, jika Anda hanya ingin menyimpan nomornya dan tidak perlu memprosesnya di tingkat basis data.
person
Ctx
schedule
03.07.2019