MongoDB数据库的安装和配置和使用

1.MongoDB的安装步骤

  1. 通过软件安装包傻瓜式安装:下载地址:http://dl.mongodb.org/dl/win32/x86_64

  2. 进入到安装目录(和bin目录同级)下,新建data文件夹

  3. 进入到data文件夹下,创建db和log目录

  4. 进入log目录,创建mongo.log

  5. 回到bin同级目录,创建mongo.config配置文件

  6. 打开配置文件,添加以下配置内容

dbpath=D:\MongoDB\data\db
logpath
=D:\MongoDB\data\log\mongo.log

完成以上,MongoDB安装完成!接下来启动MongoDB数据库:

  1. 到安装MongoDB数据库的bin目录下打开cmd

  2. 先启动MongoDB服务--->执行命令:mongod --dbpath db目录所在路径

  3. 再启动MongoDB数据库---->执行命令:mongo

 2.添加MongoDB数据库服务到系统

通过以上方法虽然可以启动MongoDB数据库,但每次都要先进入到数据的bin目录在启动服务,显得太繁琐,因此可以将MongoDB数据库服务添加到系统中,如此就可以在终端随时启动数据库了。

第一步:将MongoDB数据库的bin目录路径放到系统环境变量中

第二步:将MongoDB服务加载到windows系统服务上:

(1) 使用管理员身份打开cmd

(2) 执行下列命令(注意:将log路径和db路径替换成自己的):

mongod --bind_ip 0.0.0.0 --logpath D:\MongoDB\data\log\mongo.log --logappend --dbpath D:\MongoDB\data\db --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

(3)然后查看服务,将MongoDB的服务启动类型改为自动。

 

3.MongoDB数据库的使用

1.查看当前数据库:db
默认进入test数据库

2. 查看当前连接的数据库:db.getMongo()

3. 查询所有数据库:show databases / show dbs
注:如果数据库中没有数据,不显示

4. 切换数据库:use 数据库名
注:如果没有这个数据库,则先创建再切入 --- 数据库的隐式创建

5. 创建集合:db.createCollection('集合名')

6. 查询所有集合:show tables / show collections

7. 插入文档:
db.集合名.insert({})
db.集合名.save({})
注:如果要插入多条数据,需要将多条数据放到一个数组中
例如:db.集合名.insert([{},{},……])

8. 查询文档:
db.集合名.find()

9. 删除集合:
db.集合名.drop()

10. 删除当前所在的数据库:
db.dropDatabase()

11. 修改数据/更新数据:
db.集合名.update(query,update[,upsert,multi])

参数:
query:必要参数,代表条件(
大于:$gt,小于:$lt,等于:$eq,大于等于:$gte,小于等于:$lte,不等于:$ne
)

update:必要参数,更新的数据
$set:设置值    $inc:增长值   $rename:重命名   $unset:删除

db.students.update({'name':'zhangsan'},{'$set':{'age':30}})

upsert:可选参数,是一个布尔值。
作用:如果不存在update记录,是否插入更新的数据,true代表插入,false不插入
默认是false
db.students.update({'name':'lisi'},{'$set':{'name':'lisi','age':60}},true)

multi:可选参数,是一个布尔值.
作用:是否将查询出来的数据全部更新.
true:全部更新   false:只更新一条   默认值是false
db.students.update({'age':{'$gt':20}},{'$set':{'age':1000}},{'multi':true})



12. 删除文档
db.集合名.remove(query[,justOne])
query:条件,必要参数
justOne:可选参数,是一个布尔值,代表是否只删除一条数据,默认值是false(全部删除)

使用情况:
db.集合名.remove(query)
db.集合名.remove(query,true)
db.集合名.remove({})   清空文档


13.查询文档:find([query,projection])
db.集合名.find()  查询所有文档
db.集合名.find(query)  查询符合条件的所有文档
db.students.find({'age':{'$lte':20}},{'name':1,'_id':0})  1代表显示,0代表不显示
注:find()查询时,查询出来的数据是一行显示的,
如果数据属性过多,不方便查看,可以使用pretty()格式化输出
db.集合名.find().pretty()

db.集合名.findOne([query,projection]) 只查询一条数据
注:findOne()查询出来的数据本身就是格式化之后的,所以,没有pretty()


14. MongoDB中的AND条件的使用:使用$and
mysql:select * from xxx=xx and xx=xx
mongodb:db.students.find({'$and':[{'name':'lisi'},{'age':19}]})

15. MongoDB中的OR条件使用:使用$or
mysql:select * from xxx=xx or xx=xx
MongoDB:db.students.find({'$or':[{'name':'zhangsan'},{'name':'maliu'}]})

16. 查看某一列去重后的数据:distinct()
MySQL:select distinct xx  from xxx
MongoDB:db.students.distinct('age')

17. MongoDB中的限制查询:limit()
mysql:select  * from  xxxx  limit  2,3
mongodb:db.students.find().limit(n)  查询前n条数据

18. MongoDB中的跳跃查询:skip()
MongoDB:db.students.find().skip(m)  代表跳过m条数据,从m+1条开始查询


19. MongoDB的分页:
db.students.find().skip(1).limit(3)

20. MongoDB的模糊查询:
MySQL:select * from xx where xxx like %xxx%
MongoDB:db.students.find({'name':/a/})
db.students.find({'name':/an$/})
db.students.find({'name':/^zh/})
db.students.find({'name':/正则表达式/})

21. MongoDB的统计方法
mysql:select count(*)  from xxx
MongoDB:db.students.find().count()

 3.1 MongoDB数据库使用的练习

 1.创建一个名为gzcar的数据库

use gzcar

2.创建sh_car集合

db.createCollection(‘sh_car’)

3.插入以下两条数据

第一条:brand:dazong year:2012 o_p:250000 p_p:220000 mile:18

第二条:brand:benchi year:2014 o_p:350000 p_p:320000 mile:10

字段名称:

Brand:品牌

Year:年份   【数字类型】

O_p:原价   【数字类型】

P_p:现价   【数字类型】

Mile:里程数【数字类型】

db.sh_car.insert([{‘brand’:’dazhong’,’year’:2012,’o_p’:250000,’p_p’:220000,’mile’:18},{‘brand’:’benchi’,’year’:2014,’o_p’:350000, ’p_p’:320000,’mile’:18}])

4.查询年份在2011-2015年的车辆的品牌、原价及现价并格式化输出。(1:表示显示,0:表示隐藏)

db.sh_car.find(‘$and’:[{‘year’:{‘$gt’:2011}},{‘year’:{‘$lt’:2015}}],{‘year’:0,’mil’:0}).pretty()

5.查找所有品牌为大众或者奔驰的车,并且满足现价格低于30万,原价20万以上。

db.sh_car.find(‘$or’:[{‘brand’:’dazong’},{‘brand’:’benchi’}],’$and’:[{‘p_p’:{‘$lt’:300000}},{‘o_p’:{‘$gt’:200000}}])

6.2011年以后所有大众车的现价增加1000

db.sh_car.update({‘year’:{‘$gt’:2011}},{‘$inc’:{‘p_p’:1000}})

7.查询出原价大于20万,现价小于40万的所有车辆信息中的第2条至第4条数据。

db.sh_car.find(‘$and’:[{‘o_p’:{‘$gt’:200000}},{‘p_p’:{‘$lt’:400000}}]).skip(1).limit(3)

8.查询出品牌中包含c并且里程数在18公里至30公里内的所有车辆信息。

db.sh_car.find(‘$and’:[{‘brand’:/c/},{‘mil’:{‘$gt’:18}},{‘mil’:{‘$lt’:30}}])

9.计算集合中所有的文档数量。

db.sh_car.find().count()

10.查询出所有年份在2012-2016并且满足现价高于30万或者原价低于25万的车辆信息。

db.sh_car.find(‘$and’:[{‘year’:{‘$gt’:2012}},{‘year’:{‘$lt’:2016}}],’$or’:[{‘p_p’:{‘$gt’:300000}},{‘o_p’:{‘$lt’:250000}}])

 

其他Windows安装Redis并添加本地自启动服务

 

posted @ 2021-06-30 20:20  千叶千影  阅读(586)  评论(0)    收藏  举报