
MongoDB
mongo数据库集群相关经验
Lei Gong
Powering Humanity With Code
展开
-
MongoDB Go Driver BSON类型
Go Driver支持BSON类型表示对Mongo的操作– D: 表示基础BSON文档。此命令或操作按顺序执行。– M: 与D相似,但不保留顺序。表示无序map。– A: 表示BSON数组。– E: 表示单一的子项。举例:bson.D{{ "name", bson.D{{ "$in", bson.A{"Alice", "Bob"} }}}}上面是一个简单的过滤文档,匹配的是 name 是Alice 或 Bob的数据...原创 2021-10-25 19:06:02 · 1335 阅读 · 0 评论 -
MongoDB聚合(aggregate)查询去重(distinct)后总数(count)
使用聚合函数,多次分组统计结果,最终将聚合的结果数返回给用户db.teacher.aggregate([ {$match:{"name": "Jone"}}, {$project:{"age": 1}}, {$group:{"_id": "$age"}}, {$group:{"_id": null, "count": {"$sum": 1}}}])假设数据库中名称是Jone的人有多个,以上聚合结果是,数据库中名字是Jone的人,有多少种不同的年龄。例子:名叫Jon原创 2021-10-25 18:44:56 · 11962 阅读 · 1 评论 -
MongoDB(shardsvr、configsvr、mongos) 默认端口
The following table lists the default TCP ports used by MongoDB:默认端口介绍27017mongod 和 mongos 实例的默认端口,你可以通过 port 或 --port 改变该端口27018设置 --shardsvr 运行变量或在配置文件里设置 clusterRole 为 shardsvr 时的默认端口27019设置 --configsvr 运行变量或在配置文件中将 clusterRole 设置为 c原创 2021-01-23 19:11:08 · 2730 阅读 · 1 评论 -
MongoDB “not master and slaveok=false”
在SECONDARY执行操作出发现错误:“not master and slaveok=false”这是正常的,因为SECONDARY是不允许读写的,如果非要解决,方法如下:SECONDARY> rs.slaveOk();原创 2021-01-23 18:29:11 · 1597 阅读 · 1 评论 -
python中利用pymongo连接mongo集群创建分片collection
python中利用pymongo连接mongo集群声明创建分片collection当搭建了集群做了sharding之后,最好的存储方式是允许db分片并指定collection的分片方式(shard key)。这个操作使用mongodb shell能够很方便的完成,但当我们使用python进行数据导入操作的时候,就必须通过pymongo进行,以下是pymongo允许分片的例子import pymongoconn = pymongo.Connection('127.0.0.1', 27017) db原创 2021-01-23 18:24:36 · 2375 阅读 · 9 评论 -
MongodDB集群设置登录账号密码(增加key-file以供集群内部相互验证身份)
在部署mongodb集群的时候,有些安全性要求比较高的地方,需要启用密码验证的方式,登录mongo集群。下面的方式是在mongodb 3.6版本的基础上,3个节点的集群里设置的。生成集群验证key文件使用openssl生成key文件复制该key文件到每个mongodb节点对应目录在每个节点修改key文件权限为400命令如下:$ cd /home/memdb/mongodb/conf$ openssl rand -base64 741 > /home/mongodb/data/m原创 2021-01-23 18:10:43 · 2128 阅读 · 1 评论 -
跨服务器搭建MongoDB集群应设置--bind_ip:0.0.0.0
在跨服务器搭建mongo集群时应该保持各服务器之间网络连接通畅,并且个服务器上的mongo服务应该设置–bind_ip:0.0.0.0使mongo监听来自其他服务器的连接请求详细搭建过程参考我另一篇博客MongoDB集群(分片、复制)搭建(单一服务器多进程多节点)...原创 2021-01-23 17:46:47 · 2534 阅读 · 1 评论 -
MongoDB集群(基于分片集、复制集)搭建(跨服务器 或 单一服务器多进程多节点)
搭建一个用于开发/测试环境的结构的分片集,即一个Router(mongos),一个Config Server(ReplSet)和一个分片(mongod进程或ReplSet)。实际搭建时每个结构都可以包含复制集分片:每个分片储存一定量的数据,分片可以被配置为复制集。Mongos:作为客户端与集群间的路由器,转发请求至分片。Config Server:存储集群配置与元数据,为保证高可用必须被配置为复制集。其大致结构如下图:Config Server必须被配置为复制集,其中存储了集群的元数据,原创 2021-01-23 17:34:03 · 1702 阅读 · 1 评论 -
MongoDB中的_id
打开 MongoDB 数据库中的任何一个文档,你会注意到文档中有一个 _id 字段。实际上,ObjectId 或 _id 是每个 MongoDB 文档中都存在的字段。在本篇文章中,我们将探讨它的什么以及为什么它对 MongoDB 数据库很重要。ObjectId 的结构_id 是集合中文档的主键,用于区分文档(记录),_id自动编入索引。默认情况下,_id 字段的类型为 ObjectID,是 MongoDB 的 BSON 类型之一。如果需要,用户还可以将 _id 覆盖为 ObjectID 以外的其他内容原创 2021-01-10 16:27:36 · 5108 阅读 · 1 评论