Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何使用mongoimport导入二进制数据?_Mongodb_Mongodb .net Driver - Fatal编程技术网

Mongodb 如何使用mongoimport导入二进制数据?

Mongodb 如何使用mongoimport导入二进制数据?,mongodb,mongodb-.net-driver,Mongodb,Mongodb .net Driver,我尝试了各种组合来为Mongo导入二进制数据,但我无法让它工作。我试过使用newbindata(0,)并且我试过使用 { “$binary”:”, $type:“0” } 第一个给了我一个解析错误。第二个错误是“保留字段名的使用无效” 我可以很好地导入其他对象。作为参考,我正在尝试导入BASE64编码的图像字符串。以下是我正在使用的JSON的当前版本: {"_id" : "72984ce4-de03-407f-8911-e7b03f0fec26","OriginalWidth" : 73,

我尝试了各种组合来为Mongo导入二进制数据,但我无法让它工作。我试过使用
newbindata(0,)
并且我试过使用

{
“$binary”:”,
$type:“0”
}
第一个给了我一个解析错误。第二个错误是“保留字段名的使用无效”

我可以很好地导入其他对象。作为参考,我正在尝试导入BASE64编码的图像字符串。以下是我正在使用的JSON的当前版本:

{"_id" : "72984ce4-de03-407f-8911-e7b03f0fec26","OriginalWidth" : 73, "OriginalHeight" : 150, { "$binary" : "", "$type" : "0" }, "ContentType" : "image/jpeg", "Name" : "test.jpg", "Type" : "5ade8812-e64a-4c64-9e23-b3aa7722cfaa"}

事实上,我已经解决了这个问题,我想我会回来帮助那些可能正在挣扎的人

本质上,我所做的是使用C#生成一个JSON文件。该文件用于运行并引入各种数据的导入脚本。集合中需要将二进制图像数据存储为Base64编码字符串的字段之一。Mongo文档(和)很有帮助,但只是在一定程度上有所帮助

为了正确格式化JSON,我必须使用下面的C#代码片段获取一个作为字节数组的图像文件,并将其转储到字符串中。对于较大的字符串(对于初学者来说,
StringBuilder
),有一种更有效的方法可以做到这一点,但为了演示示例,我将进行简化:

byte[] bytes = File.ReadAllBytes(imageFile);
output = "{\"Data\" : {\"$binary\" : \"" + Convert.ToBase64String(bytes) + "\", \"$type\" : \"00\"}, \"ContentType\" : \"" + GetMimeType(fileInfo.Name) + "\", \"Name\" : \"" + fileInfo.Name + "\"}";
顺便说一句,我的打字一直不及格。它转换为BSON规范中指定的通用二进制数据:

如果您想直接跳到JSON,上面的代码输出一个非常类似于以下内容的字符串:

{"Data": {"$binary": "[Byte array as Base64 string]", "$type": "00"}, "ContentType": "image/jpeg", "Name": "test.jpg"}
然后,我只是使用
mongoimport
工具来处理生成的JSON


注意:由于我已经在C#中,我本可以使用Mongo DLL并在那里进行处理,但对于这种特殊情况,我必须在代码中原始创建JSON文件。有趣的时刻。

您能添加一个更完整的代码片段,显示您试图对二进制数据执行的操作吗?我只是想了解一下这里的用法……我知道我需要什么了。如果感兴趣,我将请求的代码片段放在应答块中。不过,谢谢!