MongoDB 模拟测试



本节为您提供各种与MongoDB框架相关的模拟测试。您可以将这些示例模拟测试下载到本地机器,并在方便时离线解答。每个模拟测试都附带一个答案,以便您验证最终分数并进行自我评估。

问答

MongoDB 模拟测试一

题1 - MongoDB 是什么类型的数据库?

A - 图数据库

B - 文档数据库

C - 键值对数据库

D - 列式数据库

答案:B

解释

MongoDB 将数据存储在基于 JSON 结构的文档中。这些文档又包含键值对形式的数据。

题2 - MongoDB 中的集合和文档分别相当于 SQL 中的哪个概念?

A - 表和行

B - 表和列

C - 列和行

D - 数据库和表

答案:A

解释

SQL 数据库将数据行存储在表中,MongoDB 将文档存储在集合中。

答案:D

解释

MongoDB 为与二维和三维地理空间问题相关的功能提供特定支持。

答案:A

解释

空文档在 MongoDB 中是有效的。但是,其余三个文档都存在这样或那样的问题。选项 B 有“=”,选项 C 有“;”,选项 D 的数组格式不正确。它应该是一个子文档。

答案:B

解释

MongoDB 包中的核心组件是:mongod,核心数据库进程;mongos,分片集群的控制器和查询路由器;以及 mongo,交互式 MongoDB Shell。

题6 - 假设有一个名为 posts 的集合,其字段包括:_id、post_text、post_author、post_timestamp、post_tags 等。以下哪个查询仅检索检索到的第一个文档中名为 post_text 的键?

A - db.posts.find({},{_id:0, post_text:1})

B - db.posts.findOne({post_text:1})

C - db.posts.finOne({},{post_text:1})

D - db.posts.finOne({},{_id:0, post_text:1})

答案:D

解释

默认情况下,MongoDB 会返回每个文档的 _id 字段。因此,如果您只想获取 post_text 字段,则必须显式排除 _id 字段。此外,由于我们只需要检索第一个文档,因此必须使用 findOne 而非 find。

答案:B

解释

findOne() 和 find() 查询非常不同。find() 方法返回游标,而 findOne() 返回实际的文档。因此,选项 B 不正确,其余选项正确。

答案:C

解释

skip 和 limit 函数是线性应用的,因此它将首先跳过文档 1-5,然后返回文档 6-10。

答案:C

解释

$set 用于设置文档中特定字段的值。set 的语法是 $set:{column_name : column_value}。此外,需要 {multi:true} 来更新所有文档。否则,只更新找到的第一个文档。

题10 - MongoDB explain() 方法不支持以下哪种详细模式

A - queryPlanner

B - executionStats

C - allPlansExecution

D - customExecutionStats

答案:D

解释

explain() 的可能模式是:“queryPlanner”、“executionStats”和“allPlansExecution”。

题11 - explain() 命令运行的默认模式是什么?

A - queryPlanner

B - executionStats

C - allPlansExecution

D - customExecutionStats

答案:A

解释

默认模式是“queryPlanner”。

题12 - MongoDB 写入在多长时间内写入日志?

A - 60 秒

B - 100 毫秒

C - 1 秒

D - 100 秒

答案:B

解释

默认情况下,写入会在 100 毫秒内物理写入日志。

答案:C

解释

除非您转储整个数据,删除分片键然后重新导入所有内容,否则没有直接更改分片键的方法。其他所有选项都是错误的。分片在集合级别启用,它不会默认创建任何索引,最后分片环境支持常规排序。

题14 - MongoDB 文档的最大大小是多少?

A - 2 MB

B - 16 MB

C - 12 MB

D - 没有最大大小。它取决于 RAM。

答案:B

解释

最大 BSON 文档大小为 16 兆字节。最大文档大小有助于确保单个文档不会使用过多的 RAM,或者在传输过程中不会使用过多的带宽。

答案:C

解释

索引条目的总大小(根据 BSON 类型可能包括结构开销)必须小于 1024 字节。单个集合最多只能有 64 个索引。

题16 - 以下程序的输出是什么?

A - 60 秒

B - 100 毫秒

C - 1 秒

D - 100 秒

答案:A

解释

在默认配置中,MongoDB 每 60 秒将数据写入磁盘上的主数据文件。

答案:A

解释

$type 用于所有涉及检查 MongoDB 中字段类型的操作。10 代表 null 的 BSON 值。

答案:C

解释

mongoimport 工具导入由 mongoexport 或其他第三方导出工具创建的扩展 JSON、CSV 或 TSV 导出内容。

Q 19 - 在 mongo shell 中,哪个命令可以用来显示 MongoDB 实例中的所有数据库?

A - show dbs

B - show databases

C - show dbs -all

D - ls dbs

答案:A

解释

show dbs 返回所有数据库的列表。

Q 20 - 以下哪个副本集成员会参与主副本集的选举投票?

A - 从节点 (Secondary)

B - 隐藏节点 (Hidden)

C - 延迟节点 (Delayed)

D - 以上所有

答案:D

解释

副本集的所有成员(除非 votes 值等于 0)都会参与选举投票。这包括所有延迟节点、隐藏节点和只读从节点。

Q 21 - 使用哪个命令可以检查名为 posts 的集合的大小?

A - db.posts.stats()

B - db.posts.findStats()

C - db.posts.find({stats:1})

D - db.stats({ collection : posts })

答案:A

解释

要查看集合的统计信息(包括数据大小),请使用 mongo shell 中的 db.collection.stats() 方法。

Q 22 - 以下哪些命令可能导致数据库锁定?

A - 发出查询

B - 插入数据

C - Map-Reduce

D - 以上所有

答案:D

解释

以上所有命令都会导致读锁、写锁或两者兼有。

Q 23 - 默认情况下,mongo shell 中的 MongoDB 游标配置为返回多少个文档?要获取下一组文档,使用哪个命令?

A - 20,it

B - 200,more

C - 50,it

D - 无限制,none

答案:A

解释

在 mongo shell 中,如果返回的游标没有使用 var 关键字赋值给变量,则游标会自动迭代最多 20 次 [1] 以打印结果中的前 20 个文档。要获取下一组结果,应使用 it 命令,它将迭代下一组结果。

答案:D

解释

由于 100 和 200 都包含在内,我们需要使用 $gte(大于等于)和 $lte(小于等于)。

答案:A

解释

$gt、$lt 和相关运算符也可以应用于字符串操作。它们的工作方式与在数值上相同。

答案表

题号 答案
1 B
2 A
3 D
4 A
5 B
6 D
7 B
8 C
9 C
10 D
11 A
12 B
13 C
14 B
15 C
16 A
17 A
18 C
19 A
20 D
21 A
22 D
23 A
24 D
25 A
mongodb_questions_answers.htm
广告