当前位置: 首页 > 知识库问答 >
问题:

无法理解Mongo Db中的文档大小[重复]

鲁品
2023-03-14

我遇到了mongo的一个奇怪行为,我想澄清一下。我实际上想知道当一个文档中只有一个布尔属性时,它会消耗多少字节。

使用Stackoverflow,我发现我可以使用以下命令

反对。bsonsize-一些javascript方法,应该返回以字节为单位的大小

在执行这些命令时,我得到了一些令人困惑的结果。

这里我提供了我合并的步骤

>

Object.bsonsize(db.datarandom.find( {"_id"  :ObjectId("558bf45d5ea9019aec35d7a2")})); 

我得到了100个字节。

我运行了关于RoboMongo的第二个查询,如下所示

Object.bsonsize(db.datarandom.findOne( {"_id" :ObjectId("558bf45d5ea9019aec35d7a2")})); 

我只得到了31个字节的输出!!!!!!

有人能解释为什么当我使用查找和FindOne时,当我的收藏中只有一个文档,只有布尔值作为属性时,我会得到两个不同的输出吗?


共有2个答案

赵英哲
2023-03-14

db。收集find()查询将光标返回到所选文档和数据库。收集findOne()查询返回一个文档,因此光标和文档的大小不同。

使用数据库访问文档。收集find(),则需要使用在光标上进行迭代。next()或。toArray()

钮博裕
2023-03-14

有多种方法可以确定集合大小或文档大小。

在您的场景中,您只插入了一个带有一个字段的文档状态,因此一个文档中有两个字段\u id状态

使用以下命令

 use mydatabase  //To use particular database

 db.datarandom.stats() //Returns information of datarandom collection

size给出文档的大小

Count没有给出文档等。

有关collection stats链接的更多详细信息

注:

返回游标代码

注意:Cursor-指向查询结果集的指针。

findOne-返回特定文档,因此在与db一起使用时,它可以提供完美的文档大小,而无需填充空间。b尺寸

收藏。stats()-返回集合的详细信息,size字段提供文档大小,包括填充空间。

注意:MongoDB中的每个文档都存储在一个记录中,该记录包含文档本身和额外的空间或填充。填充允许文档随着更新而增长,同时最小化重新分配的可能性。

检查存储特性

即使只有一个或多个文档,findfindone行为也不会改变。

首先了解在哪里使用什么。

一个问题给你

例如:

   [{status: true}] and {status :true} 

是一样的吗?是否给出相同的大小?

 类似资料:
  • 本文向大家介绍MongoDB中文档的最大大小是多少,包括了MongoDB中文档的最大大小是多少的使用技巧和注意事项,需要的朋友参考一下 该文档是集合中的记录。每个文档的大小限制为16 MB。文档包裹在大括号({})中。 让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出-

  • 是否可以在MongoDB中找到最大的文档大小? 显示的是平均大小,这并不具有代表性,因为在我的例子中,大小可能会有很大差异。

  • 我是新的MongoDB,并试图从数据库检索单个文档的大小。 数据库名为“”集合名为“” 我试过: 我也尝试过: 但它只返回。如何获取文档的大小?非常感谢。

  • 我的mongoDB记录就像在这个链接更新嵌套数组mongob和示例记录如下,想要更新嵌套文档“参数”数组中的一个字段,前提是它满足一些条件(_id:“04”,操作。_id:“100”和operations.parameters.pid:“012”),此更新查询UPDATES错误嵌套记录(operations.parameters.pid:“011”),请帮助我哪里出错了: 我的更新查询如下: 我使

  • 我遇到了mongo的一个奇怪行为,我想澄清一下 我的要求很简单:我想获得集合中单个文档的大小。我找到了两种可能的解决方案: 反对。bsonsize—返回字节大小的javascript方法 在这里,我提供了一些我进行测试的代码: > 我创建了一个新的数据库“test”,并输入了一个只有一个属性的简单文档:type:“auto” stats()函数调用的输出:db。测验stats(): } bsons

  • 简而言之:如果您有大量不同大小的文档,其中相对较少的文档达到最大对象大小,那么在MongoDB中存储这些文档的最佳实践是什么? 我有一套文件,比如: 值列表的长度因文档而异。对于大多数文档,它将有几个元素,对于少数文档,它将有数千万个元素,我将达到MongoDB中的最大对象大小限制。问题是,我为那些非常大(而且相对较少)的文档提出的任何特殊解决方案都可能会对我存储小文档的方式产生影响,否则,这些小