Mongodb管理与维护实战精讲

(6人)

299.50 元 5 折

全场5折优惠,咨询QQ810476411

./mongod  启动

dbpath  默认在 /data/db

27017默认监听端口

./mongo  访问db

> show dbs;  

dbsName.ns  命名空间文件

journal

慢查询 system.profile

[展开全文]

特定类型的查询:

 

[展开全文]

mongodb查询:

循环插入:

for(i=1;i<=1000000;i++){

db.users.insert({"uid":i,"uname":"caisir"+i,"age":20+Math.round(30*Math.random()),"salary":3000+Math.round(7000*Math.random())})}

查询:

db.users.find()

db.users.findOne()

db.users.find({"age":45})

db.users.find({"age":45},{"uname":1,"salary":1}) 这样不会显示uname:1,指定返回的

db.users.find({"age":45},{"uname":1,"salary":1,"_id":0}) 

db.users.find({"age":{"$gte":35}}) 

db.users.find({"age":{"$lte":35}}) 

db.users.find({"age":{"$in":[23,20,100]}}) 

db.users.find({"age":{"$ne":[23,20,100]}}) 

Math.random()

[展开全文]

更新文档:

db.users.update({arg1},{arg2},{arg3},{arg4})

arg1:条件,arg2:更新内容; arg3:如果文档不存在是否启用插入true/false; arg4:是否全部更新匹配项(默认更新第一条)

db.users.update({"uid":1},{"uid":1,"username":caisir,"salary":30000})

 

db.users.update({"uid":1},{"uid":1,"username":caisir,"salary":30000},true)

db.users.update({"uname":caisir},{"$inc":{"salary":100}},false,true)

 

 

数组的更新:

 

[展开全文]

后台运行:(--fork)

./mongodb --dbpath=... --logpath=... -fork

配置文件:(可以通过修改目录和端口启动多实例)

mongodb.cnf:

dbpath=...

fork=true

logpath=...

port=27017

启动:

./mongod -f /etc/mongodb.cnf

关闭:

./bin/mongod --dbpath=... --shutdown

或者kill -2 `ps -ef|grep mongodb|grep -v grep|awk '{print $2}'`

 

>show dbs;  查数据库;

>use local;  打开数据库;

>show collections;  查看集和;

 

创建过程:

>use hxf;  直接创建.

>db.users.insert({"userid":1,"username":"caisir"})创建users表,同时插入记录.

>db.createCollection("user2");创建空的集和.

>db.user2.drop()   删除user2

显示记录:

>db.users.find()

>db.users,remove({})

db.help();

 

 

 

[展开全文]

启动mongodb:
./mongod --dbpath=..
默认端口:27017

进入:
./mongo

>show dbs;
use hxf;
for (i=1;i<1000000;i++)
{db.user.insert(("userid":i,"username":"hxf"+i));
}
数据存储结构:
db.0  .1  .2..=数据文件
db.ns=命名空间文件
日志存储结构:
--logpath=...来指定

--journal相当于redo日志

--profile相当于打开慢查询

--slowms=2慢查询时间

oplog相当于binlog文件

 

 

 

 

 

 

[展开全文]

db.users.insert({"uid":1,"uid":2})

不允许有相同键名的出现,以最后出现的为准

db.users.insert({"uid":1,"UID":2,"Uid":3})

更新文档:

db.users.update({"uname":caisir},{"uname":caisir})

结果是:整个document都被覆盖了

{ "_id" : ObjectId("54ffc834617c1702db857463"), "x" : 25 }
{ "_id" : ObjectId("55005283e862fafb6cf60f8d"), "y" : 1, "z" : 2 }

> db.testData.update({"y":1},{"z":100})db.testData.update({"y":1},{"z":100})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

var c=db.users.findOne({"z":100})

c.z="zzzz"

db.users.update({"uid":9943,c})

 

 

使用$inc来做修改器:

db.testData.update({"z":10},{"$inc":{"salary":100}})

 db.testData.update({"z":100},{"$inc":{"salary":-10}})

使用$set来做修改器:(可以改变字段的类型)

db.testData.update({"z":100},{"$set":{"sex":"male"}})

db.testData.update({"z":100},{"$set":{"sex":"male"}})

 

 

[展开全文]

基本操作:插入,删除、更新文档

>db.users.insert({"uid":2})

>db.users.find()

>db.users.findOne({"_id":"xxx"})

mongodb的数据类型:

什么是BSON和JSON

{ "_id" : ObjectId("54ff139b9ce643e4b0da62ed"), "uid" : 2 }

54ff139b9ce643e4b0da62ed的

54ff139b时间戳(4字节)

b9ce64(3字节)机器码

3e4b

键的命名任意:除了$  _  \0

如何快速的构造1W个文档

for (i=0;i<100000;i++){

db.users.insert({"uid":i,"username":"caisir"+i})

}

>db.users.find().count()

>db.users.find({"uid":100})







[展开全文]

1、关系型数据库高数据并发,处理能力不足

2、水平扩展不容易

3、NoSQL,泛指非关系型的数据库NoSQL=Not Only SQL

mongodb 特点

1、模式自由灵活

2、易扩展

3、高性能

4、功能强大


[展开全文]

授课老师

数据运维经理

QQ客服: 810476411

QQ咨询: 810476411

QQ吐槽: 810476411

服务时间: 9:00 - 21:00

刘老师: 18516031455

微信公众号:开源力量