使用程序操作mongodb
mongodb可以使用java、python、php等语言去操作
运维使用Python居多,介绍使用python操作Mongodb数据库
使用python操作mongodb,需要使用pip安装pymongo模块
yum install epel...
mongodb的备份和恢复
单台服务器一定需要备份
mongodb有提供mongodump工具用来备份数据
mongodb也有提供mongorestore工具用来恢复数据
mongodb备份说明,指定ip和端口
单台服务器直接使用mongodum...
mongodb副本集伸缩说明
mongodb副本集的扩展非常好,往副本集里添加实例和移除实例都非常方便
往mongodb副本集添加实例数据能够自动同步,无需人工干预
往现有mongodb副本集中添加实例
创建27020实...
mongodb副本集的主的选举
primary的选举依赖于各个实例的优先权重,默认权重都是1
复本集的主挑选权重最高的,权重一样的无法控制谁为主
设置各个实例的优先权重,挑选自己想要的实例为主,只有prim...
mongodb的副本集自动切换
mongodb的副本集当primary挂了,会挑选其中的一台secondary升为主
挑选其中一台secondary升级为primary的条件是剩下的集群台数>=2
如果集群只剩下一个实例的话,会有异常
...
mongodb单台服务器
数据会有丢失的风险
单台服务器无法做高可用性
mongodb副本集能够预防数据丢失,多台mongodb数据一致
mongodb副本集能够在有问题的时候自动切换
实战说明
使用两台服务器实战m...
mongodb实时监控之mongostat
mongostat可以实时监控mongodb的状态,一直刷新输出
/usr/local/mongodb/bin/mongostat --help
/usr/local/mongodb/bin/mongostat -h 127.0.0.1:27017
测试脚本
use ...
mongodb数据准备
use shijiange
for(i=1; i<=500000;i++){
db.myuser.insert( {name:'mytest'+i, age:i} )
}
mongodb有慢查询的概念,默认是超过100ms会记录慢日志mongodb.log
db.getProfil...
collection数据准备
use shijiange
db.myuser.insert( {name:"shijiange1", age: 20} )
db.myuser.insert( {name:"shijiange2", age: 28} )
db.myuser.insert( {name:"shijiange3", age: 38} )
db.myuser.in...
mongodb的基础概念介绍
database #数据库
collection #集合,类似于mysql中的表
filed #类似于mysql中字段
document #每行的记录
mongo客户端的命令自动提示功能
使用tab键
查询所有...
mongodb提供一个mongo客户端,类似于mysql提供的客户端命令
/usr/local/mongodb/bin/mongo 127.0.0.1:27017
/usr/local/mongodb/bin/mongo #默认连接到127.0.0.1:27017
mongodb启动优化说明
WARNIN...
实战环境
centos7系统、64位
iptables和selinux关闭
mongodb简介
mongodb是个非关系型数据库,但操作跟关系型数据最类似。mysql是关系型数据库
mongodb是面向文档存储的非关系型数据库,数据以json的格式进...
到目录下 vendor/topthink/think-orm/src/db/connector/Mongo.php下
将这段代码:
if (empty($config['dsn'])) {
$config['dsn'] = 'mongodb://' . ($config['username'] ? "{$config['username']}" : '...
package main
import (
"context"
"fmt"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb...
# 如何通过实例方法名字的字符串调用方法
# 要求:
# 某项目中,我们的代码使用了三个不同库中的图形类:Circle,Triangle,Rectangle
# 他们都有一个获取图形面积的接口(方法),但接口名字不同,我们可以实现...