猫鼬和猫鼬之间的区别

时间:2020-01-28 11:49:20

标签: mongodb

请简要说明猫鼬 mongodbapi mongos

有什么区别

它是否随 MongoDB 一起安装?还是需要额外的安装?

1 个答案:

答案 0 :(得分:1)

在谈论MongoDB数据库时,您需要了解这些关键字,并解释所有这些关键字,因为它们大多数是相互链接的。

数据库关键字:

  • MongoDB:到现在,您可能已经知道什么是mongo数据库,它基本上没有架构。因此使用JSON结构将数据存储到其中,每个记录被称为文档,而被称为集合 >。因此,集合中的每个文档可以具有不同的键值对,这是因为MongoDB缺少架构。 参考: Introduction-to-MongoDB并选中它以在云MongoDB-atlas中托管免费的MongoDB。
  • 副本集: 因此,让我们谈谈内部机制-通常,MongoDB将作为副本集托管,以实现高可用性和冗余。副本集应具有奇数个分片(节点/服务器/ mongod),其中一个主分片,其余为次要分片,理想情况下,您将最终连接到集群的3个分片(1P和2S)。默认情况下,主数据库将进行读写操作,然后最终会将数据同步到辅助数据库-您可以为辅助数据库配置不同的类型,其中很少不获取任何数据,它们的存在原因是不同的(主要是出于冗余目的存储数据,还到如果发生选举充当选民)的价: replication
  • mongod::mongod是MongoDB系统的主要守护进程。它处理数据请求,管理数据访问并执行后台管理操作。因此,副本集中的每个碎片都是mongod进程。 例如:-在本地安装MongoDB时,将启动mongod,然后执行mongo来访问数据库。 参考: mongod
  • 共享:分片是一种用于在多台计算机之间分配数据的方法。因此,分片具有一组副本集,其中每个副本集具有相同应用程序的不同数据。仅当数据集大且大于系统RAM的压力使磁盘驱动器的I / O容量增大时,才进行分片。通常,如果您是从头开始的,那么可能不需要那么早。 参考: sharding

  • mongos:因此,当您最终不得不进行分片并具有分片群集时,mongos实例将提供客户端应用程序和分片群集之间的接口。 mongos会将查询路由到各自的分片(副本集)。因此,您将连接到mongos而不是副本集。 参考: mongos

驱动程序关键字:

  • MongoDB驱动程序:当您使用node.js进行开发并说出mongodb驱动程序时,它就是本机mongodb驱动程序,足以通过代码访问数据库。 参考: node-mongodb-native

    const MongoClient = require('mongodb').MongoClient;
    
  • 猫鼬::这是一个node.js库/驱动程序,是mongodb驱动程序的包装。这是对象数据建模(ODM)。用基本的术语来说,由于MongoDB无需架构,如果您想使其像基于架构的 SQL 一样工作,则可以使用mongoose。因此,您可以为集合创建schemas-在将数据写入数据库时​​可用于架构验证,这样可以确保您的集合在所有文档中都具有一定的数据。尽管使用此驱动程序是可选的,但也有混合意见来自用户和许多可能使您趋向于它的功能。 参考: mongoosejsIntroduction-to-mongoose

    const mongoose = require('mongoose')
    

    还有许多其他基于语言的驱动程序。 例如:- PyMongo用于python。

Shell关键字:

  • Mongo Shell::mongo shell是MongoDB的交互式JavaScript接口。您可以使用mongo shell查询和更新数据以及执行管理操作。但是通常,您将使用mongo-compassrobo3T访问MongoDB。 参考: mongo-Shell