2.MongoDB的优势有哪些
- 面向文档的存储:以 JSON 格式的文档保存数据。
- 任何属性都可以建立索引。
- 复制以及高可扩展性。
- 自动分片。
- 丰富的查询功能。
- 快速的即时更新。
3.什么是数据库
4.什么是集合(表)
5 什么是文档(记录)
6 MongoDB和关系型数据库术语对比图
7.什么是非关系型数据库
8.为什么用MOngoDB?
- 架构简单
- 没有复杂的连接
- 深度查询能力,MongoDB支持动态查询。
- 容易调试
- 容易扩展
- 不需要转化/映射应用对象到数据库对象
- 使用内部内存作为存储工作区,以便更快的存取数据。
9.MongoDB中的命名空间是什么意思?
10.在哪些场景使用MongoDB
- 大数据
- 内容管理系统
- 移动端Apps
- 数据管理
11.monogodb 中的分片什么意思
12.为什么要在MongoDB中使用分析器
13.MongoDB支持主键外键关系吗
14.MongoDB支持哪些数据类型
- String
- Integer
- Double
- Boolean
- Object
- Object ID
- Arrays
- Min/Max Keys
- Datetime
- Code
- Regular Expression等
15.为什么要在MongoDB中用"Code"数据类型
16.32位系统上有什么细微差别?
journaling会激活额外的内存映射文件。这将进一步抑制32位版本上的数据库大小。因此,现在journaling在32位系统上默认是禁用的。
17.为什么在MongoDB中使用"Object ID"数据类型
18."ObjectID"有哪些部分组成
19.在MongoDb中什么是索引
20.如何添加索引
21.如何查询集合中的文档
22.用什么方法可以格式化输出结果
23.如何使用"AND"或"OR"条件循环查询集合中的文档
24.你怎么比较MongoDB、CouchDB及CouchBase?
MongoDB和CouchDB都是面向文档的数据库。MongoDB和CouchDB都是开源NoSQL数据库的最典型代表。 除了都以文档形式存储外它们没有其他的共同点。MongoDB和CouchDB在数据模型实现、接口、对象存储以及复制方法等方面有很多不同。
细节可以参见下面的链接:
MongDB vs CouchDB
CouchDB vs CouchBase
25.名字空间(namespace)是什么?
MongoDB存储BSON对象在丛集(collection)中。数据库名字和丛集名字以句点连结起来叫做名字空间(namespace)。
26.如果用户移除对象的属性,该属性是否从存储层中删除?
是的,用户移除属性然后对象会重新保存(re-save())。
27.什么是聚合
聚合操作能够处理数据记录并返回计算结果。聚合操作能将多个文档中的值组合起来,对成组数据执行各种操作,返回单一的结果。它相当于 SQL 中的 count(*) 组合 group by。对于 MongoDB 中的聚合操作,应该使用方法。
28.在MongoDB中什么是副本集(避免单点故障)
29.什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
30.MongoDB支持存储过程吗?如果支持的话,怎么用?
31.如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
GridFS是一种将大型文件存储在MongoDB中的文件规范。使用GridFS可以将大文件分隔成多个小文档存放,这样我们能够有效的保存大文档,而且解决了BSON对象有限制的问题。
32.如何执行事务/加锁?
MongoDB没有使用传统的锁或者复杂的带回滚的事务,因为它设计的宗旨是轻量,快速以及可预计的高性能。可以把它类比成MySQL MylSAM的自动提交模式。通过精简对事务的支持,性能得到了提升,特别是在一个可能会穿过多个服务器的系统里。
33.启用备份故障恢复需要多久?
从备份数据库声明主数据库宕机到选出一个备份数据库作为新的主数据库将花费10到30秒时间。这期间在主数据库上的操作将会失败–包括写入和强一致性读取(strong consistent read)操作。然而,你还能在第二数据库上执行最终一致性查询(eventually consistent query)(在slaveOk模式下),即使在这段时间里。
34.我应该启动一个集群分片(sharded)还是一个非集群分片的 MongoDB 环境?
为开发便捷起见,我们建议以非集群分片(unsharded)方式开始一个 MongoDB 环境,除非一台服务器不足以存放你的初始数据集。从非集群分片升级到集群分片(sharding)是无缝的,所以在你的数据集还不是很大的时候没必要考虑集群分片(sharding)。
35.分片(sharding)和复制(replication)是怎样工作的?
每一个分片(shard)是一个分区数据的逻辑集合。分片可能由单一服务器或者集群组成,我们推荐为每一个分片(shard)使用集群。
36.数据在什么时候才会扩展到多个分片(shard)里?
MongoDB 分片是基于区域(range)的。所以一个集合(collection)中的所有的对象都被存放到一个块(chunk)中。只有当存在多余一个块的时候,才会有多个分片获取数据的选项。现在,每个默认块的大小是 64Mb,所以你需要至少 64 Mb 空间才可以实施一个迁移。
37.我可以把moveChunk目录里的旧文件删除吗?
没问题,这些文件是在分片(shard)进行均衡操作(balancing)的时候产生的临时文件。一旦这些操作已经完成,相关的临时文件也应该被删除掉。但目前清理工作是需要手动的,所以请小心地考虑再释放这些文件的空间。
38.分片(sharding)和复制(replication)是怎样工作的?
每一个分片(shard)是一个分区数据的逻辑集合.分片可能由单一服务器或者集群组成,我们推荐为每一个分片(shard)使用集群。
39.如果块移动操作(movechunk)失败了,我需要手动清除部分转移的文档吗?
不需要,移动操作是一致(consistent)并且是确定性的(deterministic);一次失败后,移动操作会不断重试;当完成后,数据只会出现在新的分片里(shard)。
40.mongodb是否支持事务
MongoDB 4.0的新特性——事务(Transactions):MongoDB 是不支持事务的,因此开发者在需要用到事务的时候,不得不借用其他工具,在业务代码层面去弥补数据库的不足。
事务和会话(Sessions)关联,一个会话同一时刻只能开启一个事务操作,当一个会话断开,这个会话中的事务也会结束。
41.哪些语言支持MongoDB?
- C
- C++
- C#
- Java
- Node.js
- Perl
- Php 等
42.如何使用"AND"或"OR"条件循环查询集合中的文档
在方法中,如果传入多个键,并用逗号()分隔它们,那么 MongoDB 会把它看成是AND条件。
若基于OR条件来查询文档,可以使用关键字$or。
43.如何删除文档
MongoDB 利用 方法 清除集合中的文档。它有 2 个可选参数:
- deletion criteria:(可选)删除文档的标准。
- justOne:(可选)如果设为 true 或 1,则只删除一个文档。
44.在MongoDB中如何排序
MongoDB 中的文档排序是通过方法来实现的。方法可以通过一些参数来指定要进行排序的字段,并使用 1 和 -1 来指定排序方式,其中 1 表示升序,而 -1 表示降序。
45.举例说明您将从Redis和MongoDB一起使用中受益的情况?
MongoDB对于以各种方式索引的持久性,面向文档的数据很有趣。对于易失性数据或对延迟敏感的半永久性数据,Redis更有趣。
以下是在MongoDB之上具体使用Redis的一些示例。
- 2.2版之前的MongoDB还没有到期机制。上限集合不能真正用于实现真正的TTL。Redis具有基于TTL的过期机制,可以方便地存储易失性数据。例如,用户会话通常存储在Redis中,而用户数据将存储在MongoDB中并建立索引。请注意,MongoDB 2.2在集合级别引入了一种低精度的过期机制(例如,用于清除数据)。
- Redis提供了一种方便的集合数据类型及其关联的操作(联合,交集,多个集合的差等)。在此功能之上实现基本的多面搜索或标记引擎非常容易,这是对MongoDB更传统的索引功能的有趣补充。
- Redis支持有效地阻止列表上的弹出操作。这可用于实现临时分布式排队系统。它比MongoDB可尾游标IMO更具灵活性,因为后端应用程序可以在超时的情况下侦听多个队列,原子地将项目转移到另一个队列,等等…如果应用程序需要排队,则将队列存储在Redis中是有意义的,并将持久性功能数据保留在MongoDB中。
- Redis还提供了发布/订阅机制。在分布式应用程序中,事件传播系统可能会有用。对于持久性数据保留在MongoDB中而言,这也是Redis的绝佳用例。
请注意,您永远不要在同一台机器上运行Redis和MongoDB服务器。MongoDB内存被设计为可以换出,Redis不是。如果MongoDB触发某些交换活动,则Redis的性能将是灾难性的。它们应该在不同的节点上隔离。
46.MongoDB + Azure + Android:com.mongodb.WriteConcernException err:“非主用户”代码:“ 10058”
背景 :
嗨,我正在Azure上运行MongoDB副本集,并已从Android应用程序中远程连接到它。我已使读取在所有实例上都能很好地工作(已更新:因为允许它们在主节点和辅助节点上读取)。但是,对数据库的写入仍然会出现间歇性错误,并出现以下错误,因为写入必须仅在主节点上进行。
另外,如果您可以提供更多具体资源来解决此问题,那么这也将非常有帮助。我已经阅读了大多数文档,并搜索了很多此错误。
问题 :
如何防止此错误并允许100%的时间写入?
堆栈跟踪 :
注意事项 :
- 我正在使用mongo-java-driver v2.11.3。
- 我使用了
mongo-azure库
来帮助创建具有两个工作角色的MongoDB副本集。
- (如果您还有其他资源,那么我很乐意阅读。我已经阅读了GitHub自述文件this,this和其他一些与MongoDB / Azure不相关的内容。但是,这些资源不是更新,也不详细。)
可能的解决方案 :
- 我认为这与设置副本集有关。
- 我不确定这种情况是否会发生,因为我只有两个实例副本集(一个主要副本和一个次要副本),并且他们正在为谁想成为主要副本而进行争夺(阅读:投票)。也许需要仲裁员?但是,我目前不知道该怎么做。
更新 :
- 感谢@David Makogon的帮助,我非常确定问题在于如何建立与Azure的连接以及如何访问辅助角色。因此,这是我关于系统配置方式的最新注释:
- 两个工作角色(MongoDB.WindowsAzure.MongoDBRole),我通过Android应用程序通过端口27017 直接连接到这些角色。正如@David所说,我目前无法控制连接到哪个实例。
- 我不做任何事情的一个Web角色(MongoDB.WindowsAzure.Manager)在端口80上有一个。默认情况下,这是我上面提到的mongo-azure库的默认设置。我不确定是否应该对此做任何事情。
47.使用Spring Security + Spring数据+ MongoDB进行身份验证
我想将Spring安全性与MongoDB结合使用(使用Spring数据),并从我自己的数据库中检索用户以获取Spring安全性。但是,由于我的用户服务类型似乎不受支持,所以我不能这样做。
这是我的UserService类:
和我的SecurityConfig类:
我评论的那句话说:
48.Java ORM for MongoDB的开销是多少
将Java ORM用于MongoDB的开销是多少?或者更好的是,我们在基本驱动程序级别进行读写?
我们将为我们的要求之一添加Mongo DB。
有对Java夫妇的Java ORM映射工具
-morphia
-Spring数据
- 其他
49.使用Jackson PTH和Spring Data MongoDB DBRef的Java到JSON序列化生成额外的目标属性
代码示例
生成的JSON
50.表示MongoDB中具有属性的多对多关系的最佳模型
代表具有属性的多对多关系的最“ mongo”方式是什么?
因此,例如:
介绍
MYSQL表
解决方案1
将人们嵌入电影中…?
在MongoDB中,我知道这样做很好,但是我不想让人们看电影,从逻辑上讲这没有任何意义。因为人们不一定只属于电影。
解决方案2
该解决方案的问题在于,当我们要为特定对象更新人员时,我们需要运行两个更新查询以确保两个集合中的数据同步。
解决方案3
我们还可以做一些与关系有关的事情,最后得到三个集合
问题在于,由于MongoDB中缺少join语句,因此需要从人那里去->电影,反之亦然。
这是我的问题,还有什么其他方式可以对此类事物进行建模以及更多方式。就提供的解决方案而言,在mongo的性能和约定方面哪一种是最好的。
参考
https://www.cnblogs.com/angle6-liu/p/10791875.html
https://www.jb51.net/article/179908.htm
https://zhuanlan.zhihu.com/p/
https://blog.csdn.net/weixin_/article/details/
http://www.zzvips.com/article/69641.html
https://funyan.cn/p/6173.html
http://www.mianshigee.com/question/aes/
http://www.mianshigee.com/question/65730fcs/
http://www.mianshigee.com/question/67979kov/
Id, language, role
到此这篇mongodb数据库(mongodb数据库是国产的吗)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/57626.html