面试题答案
一键面试创建固定集合
在MongoDB中,可以使用以下方式创建固定集合:
db.createCollection("myFixedCollection", {capped: true, size: 100000, max: 1000})
上述代码中,myFixedCollection
是集合名称,capped: true
表示创建的是固定集合,size
用于指定集合的最大大小(单位为字节),max
用于指定集合中最大的文档数量。
与普通集合配置的主要区别
- 文档数量限制:
- 固定集合:可以通过
max
选项设置集合中允许存储的最大文档数量。例如上面代码中的max: 1000
表示该固定集合最多存储1000个文档。 - 普通集合:没有直接的文档数量限制配置,理论上可以存储无限数量的文档,仅受可用磁盘空间限制。
- 固定集合:可以通过
- 大小限制:
- 固定集合:通过
size
选项设置集合的最大大小(字节数)。当达到这个大小后,新插入的文档会覆盖最早插入的文档。例如size: 100000
表示集合最大为100000字节。 - 普通集合:没有预定义的大小限制,会随着文档的插入持续增长,直到磁盘空间耗尽。
- 固定集合:通过
- 插入顺序与访问顺序:
- 固定集合:按照插入顺序存储文档,并且访问时也按此顺序。这种特性使得固定集合在需要按插入顺序处理数据(如日志记录)时非常有用。
- 普通集合:文档存储顺序不固定,访问顺序也不由插入顺序决定。
- 自动删除旧文档:
- 固定集合:当达到
size
或max
限制时,会自动删除旧的文档以腾出空间给新文档。 - 普通集合:不会自动删除文档,除非手动执行删除操作。
- 固定集合:当达到