null是否会在mongo中消耗内存和磁盘空间?

时间:2019-07-14 23:35:25

标签: mongodb

我正在基于我的项目设计一个数据库,但是我正在考虑分离2个集合,两个集合在文档中都具有相同的3个字段,但是其中一个集合又有3个字段。

如果我不得不将它们组合成一个集合,那么我将在很多文档中添加大量空值。因此,我正在考虑将这两个类别分开,以减少内存消耗。

如果文档中的null值不占用内存,则可以合并它们。

我听说mysql中的null不占用任何空间或内存,但不确定mongo。

答案是什么?

2 个答案:

答案 0 :(得分:2)

是的,null值占用一些空间。主要用于键的名称(因为该字段仍然存在)。

但是

  • 它并不重要
  • 您根本不需要放置null值,您可以完全省略键/字段(而不是{_id: 123, name: "test", someData: null}插入{_id:123, name: "test" })。这样就不会占用空间。

答案 1 :(得分:0)

在Mongodb null中也占用一些空间和内存。 这是BSON类型的一种。

如果您没有字段值,请$unset字段

空值不会影响排序结果,但与find()

有一些不同

db.coll.find({age:null})
该查询返回集合中的两个文档。

db.coll.find({age:{$type:10}})

此命令将返回字段值为null的文档。