草庐IT

mongodb - BSON 表示缩小了吗?

coder 2023-10-27 原文

我正在使用 mongo,我保存的文档之一超过了最大 16mb。我想知道缩小结构是否能在这方面有所帮助。这就是为什么我对标题有疑问。 如果 bson 表示已经缩小了文档,那么我这边的另一次尝试对任何事情都没有帮助。

最佳答案

MongoDB 以 BSON 表示形式存储数据,其中保留字段名称和内容。对象的总大小取决于字段的长度以及字段的内容。如果您愿意缩写您的字段名称,那么您可以使您的文档更小。

您可以通过插入具有长字段名和短字段名的文档来快速检查这一点:

> db.test.insert({abcde:1})
> db.test.stats()
{
  "ns": "test.test",
  "count": 1,
  "size": 37,
  "avgObjSize": 37,
  ...

如果可以缩写字段名称,则可以减少对象大小:

> db.test2.insert({a:1})
> db.test2.stats()
{
  "ns": "test.test2",
  "count": 1,
  "size": 33,
  "avgObjSize": 33,
  ...

从上面的两个示例中,将字段名称从 abcde 缩短为 a 导致对象大小减小:37 字节对 33 字节,节省了4 个字节,使用较短的字段名称。

关于mongodb - BSON 表示缩小了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38191475/

有关mongodb - BSON 表示缩小了吗?的更多相关文章

  1. Ruby - 如何将消息长度表示为 2 个二进制字节 - 2

    我正在使用Ruby,我正在与一个网络端点通信,该端点在发送消息本身之前需要格式化“header”。header中的第一个字段必须是消息长度,它被定义为网络字节顺序中的2二进制字节消息长度。比如我的消息长度是1024。如何将1024表示为二进制双字节? 最佳答案 Ruby(以及Perl和Python等)中字节整理的标准工具是pack和unpack。ruby的packisinArray.您的长度应该是两个字节长,并且按网络字节顺序排列,这听起来像是n格式说明符的工作:n|Integer|16-bitunsigned,network(bi

  2. ruby - 如何在 Ruby 中返回整数的固定长度二进制表示? - 2

    我知道我可以使用Fixnum#to_s将整数表示为二进制格式的字符串。但是1.to_s(2)生成1而我希望它生成00000001。我怎样才能使所有返回的字符串都以零作为填充到8个字符?我可以使用类似的东西:binary="#{'0'*(8-(1.to_s(2)).size)}#{1.to_s(2)}"if(1.to_s(2)).size但这看起来不是很优雅。 最佳答案 使用字符串格式。"%08b"%1#=>"00000001" 关于ruby-如何在Ruby中返回整数的固定长度二进制表示?

  3. 欧拉角表示的姿态矩阵(313和312转序) - 2

    一、习惯约定图片来自PSINS(高精度捷联惯导算法)PSINS工具箱入门与详解.pptx二、基本旋转矩阵绕x轴逆时钟旋转α\alphaα角度Rx(α)=[ 1000cos⁡αsin⁡α0−sin⁡αcos⁡α]R_x(\alpha)=\begin{bmatrix}\1&0&0\\0&\cos\alpha&\sin\alpha\\0&-\sin\alpha&\cos\alpha\end{bmatrix}Rx​(α)=​ 100​0cosα−sinα​0sinαcosα​​绕y轴逆时钟旋转α\alphaα角度Ry(α)=[ cos⁡α0−sin⁡α010sin⁡α0cos⁡α]R_y(\alpha

  4. ruby - 是否有可能缩小 ruby 常量查找 - 2

    我有一个模块,其中包含名为String的类(以及其他类。)我需要按名称查找该类,如果没有这样的类,则优雅地回退。moduleMod1moduleStringendendMod1.const_get'String'#⇒Mod1::StringKernel.const_get'::Mod1::String'#⇒Mod1::String到目前为止,还不错。当我尝试查找不存在的类时,我预计会收到NameError,这很好。问题是如果在全局命名空间中存在一个具有给定名称的类,它将被返回:Mod1.const_get'Fixnum'#⇒Fixnum我明白其中的原因,但我的问题是:是否有现成的方法仅

  5. ruby - instance_eval 的 block 参数 - 记录了吗?目的? - 2

    刚刚意识到instance_eval产生self作为关联block的参数(除了1.9.2版本中的错误:http://www.ruby-forum.com/topic/189422)1.9.3p194:003>classC;end1.9.3p194:004>C.new.instance_eval{|*a|a}=>[#]1.9.3p194:005>这是否在某处记录/规范?看着ruby-doc:BasicObject,看不到提到的任何block参数。除了一些纯粹的历史原因之外,是否还有其他原因明确地传递它,而它自己总是被定义?我被这个击中的方式是:l=lambda{}myobj.instan

  6. ruby - 如何缩小 ruby​​ 文件 - 2

    据我们所知,有很多工具或库可以缩小javascript、css,有没有缩小ruby​​文件的工具或库?在谷歌搜索后,该问题没有正确答案。非常感谢。 最佳答案 使用Jruby!当把你的应用程序打包成war或jar时,你可以给它传递一个compiled标志,它将把.rb文件编译成java的.class字节码文件Warblerdocumentation 关于ruby-如何缩小ruby​​文件,我们在StackOverflow上找到一个类似的问题: https://s

  7. ruby-on-rails - Rails 3.2.13 与 Rails 4.0.1 - 改变了吗?方法变了? - 2

    我最近注意到ActiveRecord对象上的方法changed?在Rails3.2.13和Rails4.0.1之间发生了变化。问题在于连接到数据库中整数字段的字段。假设我的模型Model带有number整数字段:#Rails3.2.13m=Model.lastm.number#=>5m.number='5hello'm.number#=>5m.number_changed?#=>truem.changed?#=>truem.changes#=>{:number=>[5,5]}#Rails4.0.1m=Model.lastm.number#=>5m.number='5hello'm.nu

  8. ruby - 网站不再需要本地数据库了吗? - 2

    Ifthere'sabetterplacetoaskthis,pleaseletmeknow.每次我建立一个新的网站/博客/购物车/等等,我都会不断尝试做以下事情:将常用功能提取到可重用代码中(主要是Rubygems和jQuery插件)如果可能,将该gem转换成一个小型服务,这样我就不必为所涉及的对象处理数据库(服务,我指的是精简的东西,通常使用SinatraWebFramework和一些核心模型构建).我的假设是,如果我可以消除对本地数据库的依赖,从长远来看,这将使它变得更容易和更具可扩展性(在可重用性和可管理性方面可扩展,不一定是数据库/性能)。我不确定这是好假设还是坏假设。你怎么

  9. ruby - 表示 "at least one non-digit"的正则表达式 - 2

    我想根据这个模式验证用户名:允许的字符:字母、数字、连字符、下划线第一个字符必须是字母或数字用户名不能全是数字这个正则表达式满足上面的1和2,但是我想不通如何满足3:/^[a-zA-Z\d][\w\-]+$/(我正在使用Ruby,如果相关的话) 最佳答案 不是很高效,但是很简单:/^(?!\d+$)[a-zA-Z\d][\w\-]+$/前瞻只是意味着:“后面不是一串数字,一直持续到最后”。 关于ruby-表示"atleastonenon-digit"的正则表达式,我们在StackOver

  10. arrays - 在 ruby​​ 中实现的算法将 1 添加到表示为数组的数字 - 2

    我需要有关Interviewbit上的问题的基于ruby​​的解决方案的建议。问题如下Givenanon-negativenumberrepresentedasanarrayofdigits,add1tothenumber(incrementthenumberrepresentedbythedigits).Thedigitsarestoredsuchthatthemostsignificantdigitisattheheadofthelist.Therecanbeupto10,000digitsintheinputarray.Example:Ifthevectorhas[1,2,3]t

随机推荐