-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Client Side Encryption
-
None
require "bundler/inline" gemfile do source "https://rubygems.org" gem "mongo" gem "ffi" gem "libmongocrypt-helper" end begin require "mongo" mongo_client = ::Mongo::Client.new( "mongodb://127.0.0.1:27017", { read: { mode: :primary }, max_pool_size: 100, database: "users_db", server_selection_timeout: 1, user: "myUser", password: "myPassword", auth_source: "admin" } ) encrypted_mongo_client = ::Mongo::Client.new( "mongodb://127.0.0.1:27017", { read: { mode: :primary }, max_pool_size: 100, database: "users_db", server_selection_timeout: 1, auto_encryption_options: { key_vault_namespace: "encryption.__keyVault", kms_providers: { local: { key: "[\x02h/\x15\xEF\xC1\x85jj\x12\xCF\x06\xA3\xD0Zx\xADD/]\x13wr\xFD\x80U\x954\x86s\xBE\xB0\x16\x984\x8A\xC3$\x1F\x169\xD6\xCB\xB9\xB5t\x82\xD1\xA8o\xD6\xF7\xE8\xCCi\xA0\xB9aF\xA9-\x8AH9+\xA8\xBBK6\x90\x97\x9BE\xA2_\xA8_\\\xF8\xCA\a\x8A6\xA9\xEF'\x9C?\x04\x81f}\xCA\xC1\x9C" } }, schema_map: {}, extra_options: { mongocryptd_uri: "mongodb://localhost:27666" } }, user: "myUser", password: "myPassword", auth_source: "admin" } ) id = 123456789 number_hi = 2**32 number_lo = 2**30 encrypted_mongo_client[:users].delete_one({ _id: id }) encrypted_mongo_client[:users].insert_one({ _id: id, number_hi:, number_lo: }) # encrypted client puts encrypted_mongo_client[:users].find({ _id: id }).first["number_hi"].class # BSON::Int64 puts encrypted_mongo_client[:users].find({ _id: id }).first["number_lo"].class # Integer # normal client puts mongo_client[:users].find({ _id: id }).first["number_hi"].class # Integer puts mongo_client[:users].find({ _id: id }).first["number_lo"].class # Integer end
Proposed change at https://github.com/mongodb/mongo-ruby-driver/pull/2967