Mongodb 无法理解Mongo Db中的文档大小
我遇到了mongo的一个奇怪行为,我想澄清一下。我实际上想知道当一个文档中只有一个布尔属性时,它会消耗多少字节 使用Stackoverflow,我发现我可以使用以下命令Mongodb 无法理解Mongo Db中的文档大小,mongodb,Mongodb,我遇到了mongo的一个奇怪行为,我想澄清一下。我实际上想知道当一个文档中只有一个布尔属性时,它会消耗多少字节 使用Stackoverflow,我发现我可以使用以下命令 use mydatabase //To use particular database db.datarandom.stats() //Returns information of datarandom collection Object.bsonsize—一些javascript方法,应该返回以字节为单位的大小 在执
use mydatabase //To use particular database
db.datarandom.stats() //Returns information of datarandom collection
Object.bsonsize—一些javascript方法,应该返回以字节为单位的大小
在执行这些命令时,我得到了一些令人困惑的结果
这里我提供了我合并的步骤
Object.bsonsize(db.datarandom.find( {"_id" :ObjectId("558bf45d5ea9019aec35d7a2")}));
我有100个字节Object.bsonsize(db.datarandom.findOne( {"_id" :ObjectId("558bf45d5ea9019aec35d7a2")}));
我得到的输出只有31字节要使用db.collection.find()访问文档,您需要使用.next()或.toArray()在光标上进行迭代。有多种方法可以找到集合大小或文档大小 在您的场景中,您只插入了一个带有一个字段的文档
状态
,因此一个文档中有两个字段\u id
和状态
使用以下命令
use mydatabase //To use particular database
db.datarandom.stats() //Returns information of datarandom collection
Size
给出文档的大小
Count
给出文档数量等
有关集合统计信息的更多详细信息
编辑
注意:
find
-返回游标对象
注意:
游标-指向查询结果集的指针
findOne
-返回特定文档,因此在与db.bsonsize一起使用时,它可以提供完美的文档大小,而无需填充空间
collection.stats()
-返回有关集合的详细信息,size字段给出文档大小,包括填充空间
注意:MongoDB中的每个文档都存储在一个记录中,该记录包含文档本身和额外空间或填充。填充允许文档随着更新而增长,同时最小化重新分配的可能性
关于存储特性
大钞
即使只有一个或多个文档,find
和findone
行为也不会改变
首先了解在哪里使用什么
给你一个问题
例如:
[{status: true}] and {status :true}
是一样的吗?
它是否提供相同的大小?您好,我在集合中只有一个文档,因此find和findone应该提供相同的大小。你能解释一下为什么即使find给出了一个光标,“应该给出相同的大小”-应该?我想不是。在一种情况下,您可以得到单个文档的大小。在另一种情况下,您将获得光标的大小。你在比较无与伦比的东西。嗨,Karthik,当我运行这个命令时,我得到的大小是48字节。哪个是正确的stats()或object.bsonsize?@shubhamagiwal+1要指出,请检查编辑,根据您的要求选择适当的方法。我在集合中只有一个文档,因此有效地查找和查找应该给我相同的大小。你能解释一下为什么即使find给出了一个光标,也会有区别吗?kudos@karthigh.k。这就是我所期望的.Object.bsonsize(db.datarandom.find({“\u id”:ObjectId(“558bf45d5ea9019aec35d7a2”))))…-给出光标的大小Object.bsonsize(db.datarandom.findOne({“\u id”:ObjectId(“558bf45d5ea9019aec35d7a2”)}))-给出文档的大小