通过 mongo shell 脚本将图像文件读入 MongoDB 文档的二进制字段

2023-12-05

我想从 mongo shell 将图像文件读入 MongoDB 文档的二进制字段。我可以使用 MongoDB Java 驱动程序在 Java 中执行此操作。但是,我希望能够使用 mongo shell 中的 mongo 脚本进行操作。这可能吗?

例如,我想这样做:

D:\mongo\bin> mongo --shell myscript.js

其中 myscript.js 如下:

conn = new Mongo();
db = conn.getDB("mydb");
db.mycoll.remove();
db.mycoll.insert( { name : "LCD monitor",
                    thumbnail : Binary(0, **cat("D:\\images\\lcdmonitor.jpg")**)
                  } );

事实上,使用 cat() 方法会给出“InternalError:缓冲区太小(匿名):1”,因为 cat() 仅用于读取文本文件。

我应该使用哪种方法/函数来代替 cat() 来完成这项工作? 这可以在 mongo shell 中完成吗?


我不知道直接从 Mongo shell 读取二进制文件的方法。但是,如果您愿意在外部处理该文件并将其转换为base64。请注意,无论如何您都必须执行一些转换,因为据我所知,您无法将原始二进制数据存储在 MongoDB 中。

在 Linux 上,我尝试了以下方法并验证其有效:

# Extract 1M random bytes, convert it to base64, and store it as /tmp/rrr
$ head -c 10000000 /dev/random | base64 > /tmp/r

$ mongo
> var r = cat ('/tmp/r')                # Reads into r BUT then terminates it with a NL
> var rr = r.substring (0, r.length-1)  # Remove the newline
> var p = BinData (0, rr)               # bring it into p
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 mongo shell 脚本将图像文件读入 MongoDB 文档的二进制字段 的相关文章

  • 图片加载性能

    我已经尝试了几个小时从文件加载图像的各种方法 请看一下这两种方法 public Image SlowLoad string path return Image FromFile path public Image FastLoad stri
  • java设置图像的分辨率和打印尺寸

    我编写了一个程序 生成一个 BufferedImage 以显示在屏幕上 然后打印 图像的一部分包括 1 像素宽的网格线 即 一行为1个像素 行与行之间大约有10个像素 由于屏幕分辨率的原因 图像显示得比这大得多 每行有几个像素 我想将其绘制
  • Tkinter:无法识别图像文件中的数据[重复]

    这个问题在这里已经有答案了 我有以下问题 我使用外部应用程序生成 GIF 文件 对我来说 GIF 看起来不错 我可以毫无问题地打开它们 然而 使用 photo PhotoImage file screenshot file self pre
  • Javascript图像编辑插件

    在哪里可以找到 Javascript 或 jQuery 图像编辑器插件 用户可以单击图像进行编辑 并且该插件允许他们进行裁剪 调整大小 旋转 翻转等 Pixastic http pixastic com lib 不再活跃 和CamanJS
  • 在哈希图中存储字符和二进制数

    我正在尝试存储字母到二进制数的映射 这是我的映射 h 001 i 010 k 011 l 100 r 101 s 110 t 111 为此 我创建了一个哈希映射并存储了键值对 我现在想显示给定句子的相应二进制值 这是我的代码 package
  • Android:自动从项目包中删除未使用的图像

    我正在开发一个相当大的android项目 并且在drawable文件夹中有很多图像 其中许多图像未在项目中使用 因为它们已被替换 并且占用了宝贵的空间 有什么方法可以自动找到这些图像并删除它们 而不是搜索项目中的每个图像 我使用过的一些工具
  • Swift 5 MacOS 图像调整大小内存问题

    我是使用 Swift 进行 Mac OS 应用程序开发的新手 但我尝试制作简单的 ImageResizer 应用程序 我必须调整 50k 图像的大小 10个小时后 内存已增加到近120GB 我以为 Swift 也有垃圾收集器 为什么它可以增
  • 无法通过电子应用程序在discordjs上发送附加到消息的图像

    我正在尝试为我使用discordjs 编写的discord 机器人构建图形界面 但是 我在发送图像时遇到了问题 这是我的代码中负责向用户发送消息的部分 utilsateur createDM then channeltemp gt let
  • 计算数字的二进制表示形式中 1 的数量的最佳方法。 (MIPS)

    我需要计算二进制数中 1 的数量 比如说 5 所以 00001001 将是 2 或 n 2 我正在使用 MIPS 最好的方法来做到这一点 最好的方法是count them 您可以检查是否设置了最低有效位 a1 by and用一个来代替它 如
  • setImageCompressionQuality 与 setCompressionQuality 之间有什么区别 - Imagick

    我在Imagick中找到了两种设置图像压缩质量的方法 A 设置图像压缩质量 B 设置压缩质量 所以我想知道哪一个是最好的以及为什么在以下条件下 我读到了setCompressionQuality方法仅适用于新图像 我正在尝试压缩文件 jpe
  • 如何在 Firefox 插件中追加到文件?

    var tabs require sdk tabs var iofile require sdk io file var widgets require sdk widget var selection require sdk select
  • 如何使网页中出现的图标闪烁/闪烁

    几天前我开始研究高级java 我知道太晚了 我被困在使图标 出现在任务栏上 闪烁的特定任务上 这种闪烁应该根据特定条件发生 这意味着可以使用以下方法来实现javascript 我已经搜索了一段时间了 但是有没有办法让图标每隔 1 秒左右出现
  • 在 Java 中如何找出哪个对象打开了文件?

    我需要找出答案哪个对象在我的 Java 应用程序中打开了一个文件 这是为了调试 因此欢迎使用工具或实用程序 如果发现哪个对象太具体了 这class也会很有帮助 这可能很棘手 您可以从使用分析器开始 例如VisualVM http visua
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • 在 SQL Server 2005 IMAGE 列中存储 20 Meg 文件的最有效方法

    我们将文档存储在 SQL Server 2005 数据库表中 列格式为 Image 每次我尝试存储大于 1 Meg 的 PDF 文件时 它都会以某种方式损坏 NET 中是否有任何特别有效的方法来序列化大文件 10megs 并将其存储到数据库
  • 从 56 位二进制字符串创建 DES 密钥

    我有一个 56 位二进制字符串 我想将其用作 DES 加密的密钥 我在JCA文档网站上找到了以下代码 byte desKeyData byte 0x01 byte 0x02 byte 0x03 byte 0x04 byte 0x05 byt
  • 在 JavaScript 函数中加载图像

    我有获取图像像素颜色的功能 function getImage imgsrc var img img src imgsrc var imageMap new Object img load function var canvas
  • 为 iOS 应用程序加载基于 SVG 的图像资源

    我从 thenounproject 购买了一个图标作为 SVG 图像 然后我使用一个名为的 macOS 程序Gapplin http gapplin wolfrosch com 将此 SVG 导出为 PNG 图像 它显示为 100x100
  • PIL - 需要抖动,但限制调色板会导致问题

    我是 Python 新手 正在尝试使用 PIL 来执行 Arduino 项目所需的解析任务 这个问题涉及到Image convert 方法以及调色板 抖动等选项 我有一些硬件能够一次仅显示 16 种颜色的图像 但它们可以指定为 RGB 三元
  • 当有很多列时,使用 readr::read_csv() 导入数据时覆盖列类型

    我正在尝试使用 R 中的 readr read csv 读取 csv 文件 我导入的 csv 文件大约有 150 列 我只包含示例的前几列 我希望将第二列从默认类型 我执行 read csv 时为日期 覆盖为字符或其他日期格式 GIS Jo

随机推荐