MongoDB的安装以及简单的使用

安装步骤:
1、下载安装包:mongodb-win32-i386-3.0.7.zip 
2、解压zip文件到磁盘(注意:英文路径,不要有中文或特殊字符)
3、对于解压缩目录可以修改名称(可选)
例如:C:\mongodb2
4、在mongodb文件夹中创建两个子文件夹
C:\mongodb2\data //为了存储数据
C:\mongodb2\logs //为了存储日志
5、在C:\mongodb2\logs中,创建一个日志文件(一个空的文本文件)
C:\mongodb2\logs\db.log
6、启动mongodb服务器
(1)启动dos窗口(用cmd命令)
(2)进入mongodb路径
c:
cd C:\mongodb2\bin
(3)mongod --dbpath=c:\mongodb2\data --logpath=c:\mongodb2\logs\db.log
7、启动客户端
(1)启动dos窗口(用cmd命令)
(2)进入mongodb路径
c:
cd C:\mongodb2\bin
(3)mongo
8、验证
录入数据
use test1
db.c1.insert({name:"zhangsan",age:18})


重新打开客户端,查看数据
use test1
db.c1.find()


关闭服务器:
use admin
db.shutdownServer()
如果异常关闭了服务器,导致服务器不能启动了,可以删除mongod.lock文件来解决。
(C:\mongodb2\data\mongod.lock)


制作批处理命令来启动服务器:
将以下文本命令保存到,server.bat文件中,之后双击即可。
c:
cd C:\mongodb2\bin
mongod --dbpath=c:\mongodb2\data --logpath=c:\mongodb2\logs\db.log


制作windows服务:用来启动mongodb服务器
1、用系统管理员身份启动dos窗口,执行下面的命令:
mongod --dbpath=c:\mongodb2\data --logpath=c:\mongodb2\logs\db.log -install -serviceName "MongoDB"


删除windows服务:
1、用系统管理员身份启动dos窗口,执行下面的命令:
mongod -remove -serviceName "MongoDB"


查看当前有哪些数据库:
show dbs


查看当前数据库:
db


创建或者切换数据库:
use test1


删除数据库:
db.dropDatabase()


查看数据库中的表:
> show tables
> show collections


创建集合:
db.createCollection("t1")
db.t1.insert({name:"abc"})


删除集合:
db.c1.drop()


插入数据:(每行的列可以不同)
db.t1.insert({name:"zhang1",age:20,sex:1})
db.t1.insert({_id:"A001",name:"zhang3",address:"beijing"})


批量插入数据:
> for(var i=0;i<20;i++){
... db.c3.insert({name:"name"+i,age:i,score:i+60,address:"beijing"})
... }


查询c3集合中的所有记录:
db.c3.find()


条件查询:
db.c3.find({name:"name2"})


多条件and查询:
db.c3.find({name:"name5",score:65})


指定查询结构显示某些列:(1:代表显示,0代表不显示)
db.c3.find({},{_id:0,name:1,age:1})


比较查询:
db.c3.find({age:{$lt:5}})
db.c3.find({age:{$gte:5},score:{$lt:67}})
> $gt
>= $gte
< $lt
<= $lte


查询结果数量:
db.c3.find().count()
db.c3.find({age:{$gte:5},score:{$lt:67}}).count()


分页:
db.c3.find().skip(2).limit(3)
skip:跳过n条
limit:取n条


count()命令的参数:(0:代表忽略limit,1:代表不忽略)
> db.c3.find().skip(2).limit(3).count(0)
20
> db.c3.find().skip(2).limit(3).count(1)
3
>


排序:(1:代表正序,-1:代表倒序)
db.c3.find().sort({score:-1})


数组:
db.c4.insert({name:"zhangsan",age:18,score:[60,65,75,85,95]})


数组的查询:
db.c4.find({score:{$all:[60,75,85]}}) //包含所有
db.c4.find({score:{$in:[55,95]}}) //存在某些元素
db.c4.find({score:{$nin:[55,95]}}) //与$in相反


or操作符查询:
db.c3.find({$or:[{name:"name3"},{age:{$lt:10}}]})


查询存在某列的数据:
db.t1.find({sex:{$exists:1}})


update语法:($set)
db.t1.update(
条件,
$set赋值,
没有符合条件是否自动添加,
是否只修改第一条匹配的/或者修改所有匹配的
)
db.c1.update({_id:1},{$set:{age:20}})
db.c1.update({name:"lisi"},{$set:{age:21}},1) 
db.c1.update({name:"lisi"},{$set:{address:"beijing"}},0,1)


删除某列:($unset)
db.c1.update({name:"lisi"},{$unset:{address:1}},0,1)


加减某列的数量:($inc)
db.c1.update({_id:1},{$inc:{age:-5}})


save命令修改数据:满足条件即修改,否则执行添加
db.c1.save({_id:2,name:"wangwu"})


删除数据:
db.c1.remove({_id:2})
db.c1.remove({}) //删除了所有数据


向数组添加数据:(可以有重复数据)
db.c1.update({_id:1},{$push:{course:"ios"}})


向数组添加数据:(不会有重复数据)
db.c1.update({_id:1},{$addToSet:{course:"html"}})


向数组添加多个数据:
db.c1.update({_id:1},{$addToSet:{course:{$each:["java","mongodb","reids"]}}})


从数组的两头弹出数据:(1:表示从尾删除,-1:表示从头删除)
db.c1.update({_id:1},{$pop:{course:1}})
db.c1.update({_id:1},{$pop:{course:-1}})


从数组中弹出任意的数据:
db.c1.update({_id:1},{$pull:{course:"ios"}})


插入子文档:
db.c1.insert({_id:2,name:"lisi",info:{age:20,address:"beijing",class:"1601b"}})


查询子文档:
db.c1.find({"info.age":20})


修改子文档:
db.c1.update({_id:2},{$set:{"info.age":21}})


聚合函数:$sum $avg $max $min
db.c3.aggregate([{$group:{_id:"$address",sum:{$sum:"$score"}}}])


创建索引:
db.c3.ensureIndex({"age":1}) //正序
db.c3.ensureIndex({"age":-1}) //倒序


创建不可重复的索引:
db.c5.ensureIndex({"age":-1},{unique:true})


删除索引:
db.c3.dropIndex({"age":1})


创建固定集合:(size:以k为单位,表示最大存储磁盘空间限制;max:最大存储的记录数)
db.createCollection("c6",{capped:true,size:100,max:5})


备份数据库:
mongodump -h 127.0.0.1 -d test1 -o c:\temp


恢复备份的数据库:
mongorestore -h 127.0.0.1 -d test1 c:\temp\test1




用户管理:
一、创建管理员账户:(服务器与客户端都用默认登录)
use admin
db.createUser({user:"admin",pwd:"123",roles:["root"]})


二、关闭服务器以及客户端


三、用户校验的方式启动服务器:(此时再用默认的mongo连接服务器,不能执行任何操作)
mongod --dbpath=c:\mongodb2\data --logpath=c:\mongodb2\logs\db.log --auth


四、以管理员身份登录服务器:
mongo admin -u admin -p 123


五、创建普通用户:并对其授权
use test1 //注意:需要首先use要授权的数据库
db.createUser({user:"kongtiaomeile",pwd:"123",roles:[{role:"read",db:"test1"}]})


六、关闭客户端


七、以kongtiaomeile用户身份登录
mongo test1 -u kongtiaomeile -p 123


八、执行find和insert命令,判断权限是否正确















猜你喜欢

转载自blog.csdn.net/xiayubing_/article/details/81018454