BinData()
定義
バイナリ・データ・オブジェクトを作成します。
BinData
の構文は次のとおりです。
BinData(<sub_type>,<buffer>)
- Parameterタイプ説明
sub_type
integerbuffer
stringバイナリ データを含むバッファ オブジェクト。 基本64でエンコードされたstring値である必要があります。次の値を返します。 バイナリ データ オブジェクト。
バイナリ サブタイプ
sub_type
には次のいずれかの値を指定します。
番号 | 説明 |
---|---|
0 | 汎用バイナリのサブタイプ |
1 | 関数データ |
2 | バイナリ(旧) |
3 | UUID(旧) |
4 | UUID |
5 | MD5 |
6 | 暗号化された BSON 値 |
7 | 圧縮された時系列データ バージョン 5.2 で追加。 |
8 | キーやシークレットなどの機密データ。 MongoDB では、サブタイプ 8 のバイナリ データのリテラル値はログに記録されません。代わりに、MongoDB は ### のプレースホルダー値をログに記録します。 |
9 | ベクトルデータとは、同じ型の数値が高密度に圧縮された配列です。 |
128 | カスタム データ |
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
動作
システムのエンディアン性は、マシンのアーキテクチャによって異なります。 BSON データ内の数値は常にリトルエンディアンとして保存されます。システムがビッグエンディアンの場合、数値データはビッグエンディアンとリトルエンディアンの間で変換されます。
ビットテスト マッチ式演算子のコンテキストでは、次のようになります。
BinData
値は ビットマスク として機能 と は、任意の長さの符号なしのリトルエンディアン数であるかのように解釈されます。アドレス指定可能な最小バイトは、常に最下位バイトとして解釈されます。 同様に、 BinData
内の最上位バイトは、常に最上位バイトとして解釈されます。
例
BinData()
オブジェクトの挿入
BinData()
コンストラクターを使って bdata
変数を作成します。
var bdata = BinData(0, "gf1UcxdHTJ2HQ/EGQrO7mQ==")
オブジェクトを testbin
コレクションに挿入します。
db.testbin.insertOne( { _id : 1, bin_data: bdata } )
挿入されたドキュメントの testbin
コレクションをクエリします。
db.testbin.find()
コレクションに格納されたバイナリ buffer
を見ることができます。
{ _id: 1, bin_data: Binary(Buffer.from("81fd547317474c9d8743f10642b3bb99", "hex"), 0) }
BinData()
オブジェクトの長さの取得
BinData()
コンストラクターを使って bdata
変数を作成します。
var bdata = BinData(0, "gf1UcxdHTJ2HQ/EGQrO7mQ==")
.length()
を使用して、オブジェクトのビット長を返します。
bdata.length()
戻り値は次のとおりです。
16