定義
バイナリ・データ・オブジェクトを作成します。
BinData の構文は次のとおりです。
BinData(<sub_type>,<buffer>)- Parameterタイプ説明
sub_typeinteger
bufferstring
バイナリ データを含むバッファ オブジェクト。 基本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