MongoShellからのMongoDBUUID変換は、タイプ03、レガシー形式であることが判明しました。TYPE 04、バイナリ形式でどのように機能させるのですか?
> db.foo.insert({"_id":1000,"key1":UUID("240003A09CEC456AB57B98FF8E0E45DB")})
WriteResult({ "nInserted" : 1 })
> db.foo.find({_id:1000})
{ "_id" : 1000, "key1" : BinData(3,"JAADoJzsRWq1e5j/jg5F2w==") }
> db.version()
3.4.2
Javaコードから、バイトバッファーを使用して、タイプ04のバイナリuuidとして挿入できます。サンプル:BinData(4、 "XWCwWqIVTfiEkTx9Yl + 2UQ ==")。
BinData()
base64エンコーディングを抽出して提供することにより、データをタイプ4として関数に直接配置できます。
var t = BinData(4, UUID("240003a09cec456ab57b98ff8e0e45db").base64())
BinData(4,"JAADoJzsRWq1e5j/jg5F2w==")
そして、あなたはまだ16進数から提供された値を取得します:
t.hex()
240003a09cec456ab57b98ff8e0e45db
または、直接HexData()
:に供給します。
HexData(4,"240003a09cec456ab57b98ff8e0e45db")
BinData(4,"JAADoJzsRWq1e5j/jg5F2w==")
間にハイフンを含むデータがある場合は.split()
、と.join()
を使用して再フォーマットします。
var str = "240003A0-9CEC-456A-b57B-98FF8e0E45DB";
str.split('-').join("").toLowerCase();
"240003a09cec456ab57b98ff8e0e45db"
UUID()
タイプ4をデフォルトのSERVER-12835として生成するためのJIRAチケットが存在しますが、これは優先度の低い問題です。一般的な使用法では、インタラクションは代わりに「ドライバー」ベースである必要があります。しかし、シェルを操作するためのこれらの方法があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加