MongoDB笔记

参考链接

官网:https://docs.mongodb.com/manual/introduction/

中文社区:https://mongoing.com/

中文文档:https://docs.mongoing.com/

遇到问题

什么是分片?

内存映射?

有了内存映射为什么还弄个Journal?

use创建集合后show dbs不能马上看到,要等一段时间?

嵌入式文档和数组减少了对连接的需求?

概念

MongoDB一台机器可以有多个实例,每个实例端口不同,dbpath不同

与redis区别:mongodb自带统计功能

CURD操作

db.inventory.find({}).pretty()

索引

 

聚合

聚合管道

集群

主从复制集群

复制集集群

允许从库读:rs.secondaryOk()

获取复制集状态:rs.status()

只有主节点才能被写入

分片集群

一个数据库被分散在多个分片,所有的分片组成一个数据库。

每个分片都是一个集群(复制集),提高写性能。

解决系统扩展的两个方法:垂直扩展和水平扩展

垂直扩展:升级单台服务器的硬解(CPU,内存,硬盘)

水平扩展:增加服务器

地区A访问地区B可以就近访问:将地区B的一个从节点(shardB)放在地区A。但是该从节点不能有选举权(也就是不能成为主节点),否则当shardB选举为主节点后,地区B的数据都写到shardB,并且数据又同步回地区B的从节点,这样跨区域写肯定是不行的。

MongoDB分片的单位是集合

客户端需要连接router,而不是直接连接分片节点

分片策略

哈希分片

范围分片

C/C++操作MongoDB

安装mongo-c-driver

#下载1.17.5版本的压缩包

wget https://github.com/mongodb/mongo-c-driver/releases/download/1.17.5/mongo-c-driver-1.17.5.tar.gz

#解压压缩包

tar zxvf mongo-c-driver-1.17.5.tar.gz

#进入目录

cd mongo-c-driver-1.17.5

mkdir build

cd build

cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..

make

sudo make install



lib:/usr/local/lib/

include:/usr/local/include/libmongoc-1.0

参考:http://mongoc.org/libmongoc/current/installing.html

安装mongo-cxx

#从github下载稳定版本,当前使用的是3.6.5版本,如果下载tar.gz包缺少EP_mnmlstc_core
git clone https://github.com/mongodb/mongo-cxx-driver.git --branch releases/stable --depth 1
 
#进入build目录
cd mongo-cxx-driver/build
 
cmake -DCMAKE_BUILD_TYPE=Release -DBSONCXX_POLY_USE_MNMLSTC=1 -DCMAKE_INSTALL_PREFIX=/usr/local ..
# sudo make EP_mnmlstc_core  这步骤不能漏
sudo make EP_mnmlstc_core  
make 
sudo make install
sudo ldconfig

# 编译对应的example范例(mongo-cxx-driver/examples)
make run-examples

安装路径:
lib:/usr/local/lib/
include:/usr/local/include/mongocxx

例子

编译helloworld:

gcc -o hello_mongoc hello_mongoc.c \

    -I/usr/local/include/libbson-1.0 -I/usr/local/include/libmongoc-1.0 \

    -lmongoc-1.0 -lbson-1.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值