首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Base64 mongodb - [js]错误:无效的base64

Base64 mongodb - [js]错误:无效的base64
EN

Stack Overflow用户
提问于 2020-02-03 17:20:23
回答 1查看 323关注 0票数 0

我有一个函数,它接受十六进制Mongo作为输入,将其转换为Base64,然后对MD5数据库发出find

下面代码段中的字符串$Base64MD5包含:lxCzLiriwm0tPHW+r0wawQ==,它作为有效的Base64检出。

添加到mongo命令字符串并执行时:

代码语言:javascript
复制
$Hashhit = mongo --host $connectionString --eval @'
db.Media.findOne
(
{ 'Batches.Hashes.Hash': BinData(0, '$Base64MD5') }
)
'@

我得到了:

代码语言:javascript
复制
<MongoDBValidate>   MongoDB shell version v4.0.15 connecting to: mongodb://localhost:27018/
local?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("acec5f08-d0b4-438c
-9782-bce72b585a22") } MongoDB server version: 4.0.4 2020-02-03T08:58:27.235+0000 E QUERY  

  [js] Error: invalid base64 :  @(shell eval):3:26

这有点令人困惑。我们非常欢迎您的任何建议。

EN

回答 1

Stack Overflow用户

发布于 2020-02-04 00:49:20

您在mongo命令行中使用了带单引号的here-string,这意味着它没有插入$Base64MD5变量-它实际上是将字符串$Base64MD5作为第二个参数嵌入到BinData中。

将此示例与此处的单引号-字符串(@' ... '@)进行比较:

代码语言:javascript
复制
PS> $aaa = "myfile.txt"
PS> x$ = notepad @'
>> $aaa
>> '@

这将启动记事本并显示错误Cannot find the $aaa.txt file.

对比双引号(@" ... "@)

代码语言:javascript
复制
PS> $aaa = "myfile.txt"
PS> x$ = notepad @"
>> $aaa
>> "@

这将显示错误Cannot find the myfile.txt file.

尝试将您的here-string分隔符更改为双引号-即:

代码语言:javascript
复制
$Hashhit = mongo --host $connectionString --eval @"
db.Media.findOne
(
{ 'Batches.Hashes.Hash': BinData(0, '$Base64MD5') }
)
"@

看看这是否有效..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60036224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档