MongoDB面试系列-02

1. MongoDB 中必须调用 getLastError 来确保写操作生效吗?

MongoDB中不管有没有调用getLastError(又称为Safe Mode),服务器执行的操作都会一样。

而调用getLastError只是为了确认写操作是否成功提交,但是写操作的安全性和是否生效不是由这个决定的。

2. MongoDB 开发环境中有必要启动一个集群分片(sharded)吗?

为开发便捷起见,建议以非集群分片(unsharded)方式开始一个MongoDB环境,除非一台服务器不足以存放初始数据集。

从非集群分片升级到集群分片(sharding)是无缝的,所以在数据集还不是很大的时候没必要考虑集群分片(sharding)。

3. MongoDB 中分片(sharding)和复制(replication)是如何工作的?

每一个分片(shard)是一个分区数据的逻辑集合。

分片可能由单一服务器或者集群组成,推荐为每一个分片(shard)使用集群。

4. 数据在什么时候才会扩展到多个分片(shard)中?

MongoDB分片是基于区域(range)的,因此一个集合(collection)中的所有的对象都被存放到一个块(chunk)中。只有当存在多余一个块的时候,才会有多个分片获取数据的选项。目前,MongoDB每个默认块的大小是64Mb,所以需要至少64Mb空间才可以实施一个迁移。

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

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

6. 一个分片(shard)停止或者很慢时,发起查询会怎样?

如果一个分片(shard)停止了,除非查询设置了“Partial”选项,否则查询会返回一个错误。

如果一个分片(shard)响应很慢,MongoDB则会等待它的响应。

7. MongoDB 中可以把 moveChunk 目录的旧文件删除吗?

MongoDB中可以把moveChunk目录的旧文件删除。

这些文件是在分片(shard)进行均衡操作(balancing)的时候产生的临时文件。一旦这些操作已经完成,相关的临时文件也应该被删除掉。但目前清理工作是需要手动的,所以需要谨慎考虑此操作,再释放这些文件的空间。

8. 如何查看 MongoDB 正在使用的链接?

db._adminCommand("connPoolStats");

9. MongoDB 中块移动操作(moveChunk)失败,需要手动清除部分转移的文档吗?

MongoDB中块移动操作(moveChunk)失败,不需要手动清除部分转移的文档。

移动操作是一致(consistent)并且是确定性的(deterministic);一次失败后,移动操作会不断重试;当完成后,数据只会出现在新的分片中(shard)。

10. MongoDB 在 A:{B,C} 上建立索引,查询 A:{B,C} 和 A:{C,B} 都会使用索引吗?

MongoDB在A:{B,C}上建立索引,只会在A:{B,C}上使用索引。

11. MongoDB 中当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?

当更新一个正在被迁移的块(Chunk)上的文档时更新操作会立即发生在旧的块(Chunk)上,然后更改才会在所有权转移前复制到新的分片上。

12. MongoDB 支持存储过程吗?如何使用?

MongoDB支持存储过程,它是JavaScript写的,保存在db.system.js表中。

13. MongoDB 中如何理解 GridFS 机制,为什么使用 GridFS 存储文件?

GridFS是一种将大型文件存储在MongoDB中的文件规范。使用GridFS可以将大文件分隔成多个小文档存放,这样我们能够有效的保存大文档,而且解决了BSON对象有限制的问题。

14. MongoDB 是由哪种语言写的?

MongoDB用C++编写的,流行的开源数据库MySQL也是用C++开发的。C++于1983年发行,是一种使用广泛的计算机程序设计语言。它是一种痛用程序设计语言,支持多种编程模式。

15. MongoDB 中优势有哪些?

  • 面向文档的存储:以JSON格式的文档保存数据。

  • 任何属性都可以建立索引。

  • 复制以及高可扩展性。

  • 自动分片。

  • 丰富的查询功能。

  • 快速的即时更新。

  • 来自MongoDB的专业支持。

16. 分析器在 MongoDB 中的作用是什么?

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

通俗的说分析器就是explain显示每次操作性能特点的数据库分析器。通过分析器可能查找比预期慢的操作。

17. MongoDB 中什么是文档?

文档由一组key value组成。文档是动态模式,这意味着同一集合里的文档不需要有相同的字段和结构。在关系型数据库中table中的每一条记录相当于MongoDB中的一个文档。

18. MongoDB 中什么是 mongod?

mongod是处理MongoDB系统的主要进程。它处理数据请求,管理数据存储,和执行后台管理操作。当我们运行mongod命令意味着正在启动MongoDB进程,并且在后台运行。

19. MongoDB 中 mongod 参数都有哪些?

  • 传递数据库存储路径,默认是“/data/db”

  • 端口号默认是“27017”

20. 什么是 mongo?

它是一个命令行工具,用于连接一个特定的mongod实例。当我们没有带参数运行mongo命令,它将使用默认的端口号和localhost连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/630994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL中根据出生日期计算年龄

创建student表 mysql> create table student( -> sid int primary key comment 学生号, -> sname varchar(20) comm…

「实战应用」如何用DHTMLX Gantt构建类似JIRA式的项目路线图(二)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。 在web项目中使用DHTMLX Gantt时,开发人员经常需要满足与UI外观相关的各种需求。因此他们必须确定JavaScript甘特图库的…

Android Studio由于开启代理无法下载依赖,一直在Build model

一、问题描述 正常打开AS项目,一直显示Build model就是不下载依赖 二、问题解决 1、首先选择No Proxy,可以看到这位同学之前是使用的代理。 2、打开下面文件,然后删除某尾的4行。 3、面对提示框,直接点击OK。 4、然后停…

IIS 缓存, 更新后前端资源不能更新问题

解决办法: 通常只需要index.html 不缓存即可, 其他文件都是根据index.html 中的引用去加载; 正确的做法是在 站点下增加 web.config 文件, 内容如下: 我这个是因为目录下有个config.js 配置文件, 也不能缓存, 所以加了两个 <?xml version"1.0" encoding&quo…

基于Python flask的猫眼电影票房数据分析可视化系统,可以定制可视化

技术方案 猫眼电影票房数据分析可视化系统是基于Python Flask框架开发的一款用于分析和展示猫眼电影票房数据的Web应用程序。该系统利用Flask提供了一个简单而强大的后端框架&#xff0c;结合Request库进行网络爬虫获取猫眼电影票房数据&#xff0c;并使用Pyecharts进行可视化…

消息中间件面试题

目录 一.为什么使用消息队列 二.RabbitMQ 1.RabbitMQ如何保证消息不丢失 2.RabbitMQ消息的重复消费问题 3.RabbitMQ延迟队列 4.RabbitMQ消息堆积 5.RabbitMQ高可用机制 三.Kafka 1.Kafka如何保证消息不丢失 2.Kafka如何保证消费消息的顺序性 3.Kafka高可用机制 4.Ka…

运维笔记之linux运维管理基础

课程链接 001_课程介绍_哔哩哔哩_bilibili 编辑器vi/vim 在 CentOS 上使用 Vim 编辑器时&#xff0c;可以进行更多操作&#xff0c;包括复制、粘贴、删除、查找等。以下是一些常用的 Vim 操作命令&#xff1a; 复制光标所在行&#xff1a;按下 yy 键。剪切光标所在行&#…

MongoDB聚合:$set

聚合$set阶段可以为文档添加新的字段。$set输出的文档包含输入文档中的所有现有字段和新添加的字段。$set是$addFields的别名&#xff0c;从MongoDB4.2开始支持。$set和$addFields等价于$project阶段&#xff0c;这两个阶段都等同于 $project 阶段&#xff0c;后者明确指定输入…

黑马程序员——javase基础——day05——面向对象基础

目录&#xff1a; 面向对象 面向对象介绍为什么要用面向对象编程面向对象.重点学习什么?类和对象 什么是类什么是对象对象的属性和行为类的定义对象的使用学生类的定义和使用对象内存图 Java内存分配单个对象多个对象思考&#xff1a;多个引用指向相同成员变量和局部变量的区…

未来能源转型之路:2023年第十三届中国国际储能大会启示录

在2023年第十三届中国国际储能大会上&#xff0c;全球各地的能源专家、学者和企业代表齐聚一堂&#xff0c;共同探讨了储能技术在推动能源转型中的重要作用。对于我们普通人来说&#xff0c;从这场大会中可以学到什么呢&#xff1f; 一、储能技术是未来能源发展的关键 随着可再…

《剑指 Offer》专项突破版 - 面试题 15 : 字符串中的所有变位词(C++ 实现)

题目链接&#xff1a;LCR 015. 找到字符串中所有字母异位词 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 输入字符串 s1 和 s2&#xff0c;如何找出字符串 s2 的所有变位词在字符串 s1 中的起始下标&#xff1f;假设两个字符串中只包含英文小写字母。例如&…

面试经典150题(88-89)

leetcode 150道题 计划花两个月时候刷完&#xff0c;今天&#xff08;第四十四天&#xff09;完成了2道(88-89)150&#xff1a; 88.(22. 括号生成) 题目描述&#xff1a; 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效…

(八)Java 循环结构 —— for、while、do...while

目录 一. 前言 二. Java 循环结构 2.1. for 循环 2.2. 增强 for 循环 2.3. while 循环 2.4. do…while 循环 2.5. continue 关键字 2.6. break 关键字 三. 课后习题 一. 前言 循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件&…

html+js网页连接MQTT服务器new Paho.MQTT.Client

网页完整代码示例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible&quo…

YOLOv5改进 | 检测头篇 | 利用DynamicHead增加辅助检测头进行针对性检测(让小目标无所遁形)

一、本文介绍 本文给大家带来的改进机制是针对性的改进,针对于小目标检测增加P2层,利用DynamicHead(原版本一比一复现,全网独一份,不同于网上魔改版本)进行检测,其中我们增加P2层其拥有更高的分辨率,这使得模型能够更好地捕捉到小尺寸目标的细节。在这些的基础上配合Dyn…

Python爬虫实战014:利用requests库实现自动评论

文章目录 代码需要修改的参数如何修改headers 中的cookiedata中的contentdata中的articleId全网文章自动评论代码 import requests# 固定写法不要动 url = "https://blog.csdn.net/phoenix/web/v1/comment/submit" headers = {user-agent:

基于springboot+vue的社区团购系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

人工智能 AI 如何让我们的生活更加便利

每个人都可以从新技术中获益&#xff0c;一想到工作或生活更为便利、简捷且拥有更多空余时间&#xff0c;谁会不为之高兴呢&#xff1f;借助人工智能&#xff0c;每天能够多一些空余时间&#xff0c;或丰富自己的业余生活&#xff0c;为培养日常兴趣爱好增添一点便利。从电子阅…

【PostgreSQL】函数与操作符-数据类型格式化函数

PostgreSQL格式化函数提供一套强大的工具用于把各种数据类型 &#xff08;日期/时间、整数、浮点、数字&#xff09; 转换成格式化的字符串以及反过来从格式化的字符串转换成 指定的数据类型。下表列出了这些函数。这些函数都遵循一个公共的调用规范&#xff1a; 第一个参数是待…

Mybatis 分页

目录 一、Mybatis Plus 分页 1. 配置 &#xff08;1&#xff09;依赖 &#xff08;2&#xff09;创建MybatisPlusConfig配置类&#xff0c;配置分页插件 2. 纯代码分页查询 &#xff08;1&#xff09; 执行查询&#xff08;这里调用的是IService接口的page方法&#xff0…