MongoDB学习

概念分析

数据库

文档

集合

集合就是 MongoDB 文档组,类似于 RDBMS中的表格。当第一个文档插入时,集合就会被创建。

capped collections

固定大小的collection, 需要显示的创建.

连接MongoDB服务

mongo 172.251.150.122:27017/haha_product -u qq -p qq

数据库操作

use zhengj  -- 新建

db.dropDatabase() -- 删除

文档操作

1. 插入

insert() 或 save()

可执行插入操作.

db.table1.insert({"title":"mongo learning"})

document = {title:"family",member:"aman,yangyang,zhengj"}

db.table1.save(document)

for (var i=0;i<114; i++){db.t2.insert({"title":'family'+i,member:'aman'+i})}

如果指定_id字段,则是更新, 否则新插入.

2. 查询

db.table1.find().pretty()

db.table1.findOne()  -- 仅查找一行

db.t2.find({id:{$gt:1},id:{$lt:10}}) -- and

db.t2.find({$or:[{id:2},{id:1}]}) -- or

db.t2.find({id:{$type:"string"}})

db.t2.find({id:{$type:"double"}}).limit(3)

db.t2.find({id:{$type:"double"}}).limit(3).skip(2) -- 忽略表中的前2行进行查询

db.t2.find({id:{$type:"double"}}).limit(3).skip(8)

db.t2.find({id:{$type:"double"}}).skip(4).sort({id:-1})

操作符:

3.更新

db.table1.update({title:"fimilies"},{title:"families",member:"aman,yangyang,zhengj"})

4. 删除

db.table1.remove({title:"mongo learning"})

db.table1.remove({title:"families"},{justOne:true})

db.table1.remove({title:"families"},true)

db.table1.remove({})

分组,排序和管道

-- 分组计数

db.t3.aggregate([{$group:{_id:"$title",count:{$sum:1}}}])

-- 排序

db.t2.find({id:{$type:"double"}}).skip(4).sort({id:-1})

-- 分组求和

db.t2.aggregate([{$group:{_id:"$id",summary:{$sum:"$id"}}}])

-- 管道

db.t2.aggregate([{$skip:5},{$group:{_id:"$id",maximum:{$max:"$id"}}}])

管道操作:

复制

复制原理图:

副本集特征:

  • 单个副本集限制12个节点

  

配置步骤:

1. 启动master节点

mongod --port 28017 --logpath "D:\MongoDB\replSet_log \mongodb.log" --logappend --dbpath "D:\MongoDB\replSet \data" -- cpu --replSet rs0

2. 初始化master节点

rs.initiate()

rs.conf()

rs.status()

3. 启动secondary节点

mongod --port 28018 --logpath "D:\MongoDB\replSet_log \mongodb1.log" --logappend --dbpath "D:\MongoDB\replSet \data1" --bind_ip 192.168.1.12 --replSet rs0

4. 添加成员

rs.add(192.168.1.12:28018)

5. 在secondary节点查看同步结果

rs.slaveOk()

分片

为什么要用分片:

分片集群架构:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值