在MongoDB的BinData()中使用十六进制代替Base64

4
有没有一种方法可以将16进制或二进制值发送给mongo的BinData(),而不是base64?

我不确定我理解了 - 你想在检索后将其转换为十六进制吗?你有它的十六进制并需要base64来保存它吗?你能编辑问题并提供一个例子吗? - wdberkeley
例如使用BinData(0,"0565AF71")而不是BinData(0,"BWWvcQ=="),@wdberkeley。 - Hamid Mamdoohi
所以你想将十六进制数据转换为base64。我认为在shell中没有这方面的帮助程序 - 你应该转向使用驱动程序,比如Node.js驱动程序,在那里你可以使用库来进行转换。 - wdberkeley
3个回答

7
HexData(3,"00112233445566778899aabbccddeeff")

或者

UUID("00112233445566778899aabbccddeeff")

两者都会导致以下结果:

BinData(3,"ABEiM0RVZneImaq7zN3u/w==")

另一种方式是:

BinData(3,"ABEiM0RVZneImaq7zN3u/w==").hex()

将会得到以下结果:

00112233445566778899aabbccddeeff

0
如果您的mongodb驱动程序使用javascript,那么您应该尝试BinData(3,"ABEiM0RVZneImaq7zN3u/w==").toString('hex'); 我没有找到其他方法,因为JS中没有hex();函数。

0

只需使用HexData(subtype, hexstr)


1
虽然这段代码可能解决了问题,但是包括解释它如何以及为什么解决了问题,将有助于提高您的帖子质量,并可能导致更多的赞。请记住,您正在回答未来读者的问题,而不仅仅是现在提问的人。请编辑您的答案以添加解释,并指出适用的限制和假设。 - Alexandre B.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接