MongoDB 面试题

文章目录

    • ObjectID 有哪些部分组成
    • 当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什 么?
    • 为什么要在 MongoDB 中使用分析器
    • 解释一下 MongoDB 中的索引是什么?
    • 什么是集合(表)
    • 提到如何检查函数的源代码?
    • 什么是 NoSQL 数据库?NoSQL 和 RDBMS 有什么区别?在哪些情况下使用和不使用 NoSQL 数据库?
    • 提及插入文档的命令语法是什么?
    • 如果在一个分片(shard)停止或者很慢的时候,我发起一个查询 会怎样?
    • 如何执行事务/加锁?

ObjectID 有哪些部分组成

一共有四部分组成:时间戳、客户端 ID、客户进程 ID、三个字节的增量计数器。

当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什 么?

更新操作会立即发生在旧的分片(shard)上,然后更改才会在所有权转移 (ownership transfers)前复制到新的分片上。

为什么要在 MongoDB 中使用分析器

MongoDB 中包括了一个可以显示数据库中每个操作性能特点的数据库分析器。通过这个分析器你可以找到比预期慢的查询(或写操作);利用这一信息,比如, 可以确定是否需要添加索引。

解释一下 MongoDB 中的索引是什么?

索引是 MongoDB 中的特殊结构,它以易于遍历的形式存储一小部分数据集。
索引按索引中指定的字段的值排序,存储特定字段或一组字段的值。

什么是集合(表)

集合就是一组 MongoDB 文档。它相当于关系型数据库(RDBMS)中的表这 种概念。集合位于单独的一个数据库中。一个集合内的多个文档可以有多个不 同的字段。一般来说,集合中的文档都有着相同或相关的目的。

提到如何检查函数的源代码?

要检查没有任何括号的函数源代码,必须调用该函数。

什么是 NoSQL 数据库?NoSQL 和 RDBMS 有什么区别?在哪些情况下使用和不使用 NoSQL 数据库?

NoSQL 是非关系型数据库,NoSQL = Not Only SQL。 关系型数据库采用的结构化的数据,NoSQL 采用的是键值对的方式存储数据。 在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时,随时应对动 态增加的数据项时可以优先考虑。
使用 NoSQL 数据库。 在考虑数据库的成熟度;支持;分析和商业智能;管理 及专业性等问题时,应优先考虑关系型数据库。

提及插入文档的命令语法是什么?

用于插入文档的命令语法是 database.collection.insert(文档)。

如果在一个分片(shard)停止或者很慢的时候,我发起一个查询 会怎样?

如果一个分片(shard)停止了,除非查询设置了“partial”选项,否则查询会 返回一个错误。如果一个分片(shard)响应很慢,MongoDB 则会等待它的 响应。

如何执行事务/加锁?

因为 MongoDB 设计就是轻量高性能,所以没有传统的锁和复杂的事务的回滚。

你可能感兴趣的:(Java面试,mongodb,数据库)