下载:https://www.mongodb.com
文档:https://docs.mongodb.com/manual/
下载好之后双击进行安装,win7系统需要安装补丁,KB2731284。
直接下一步下一步安装完成。
安装完之后配置环境变量:
Paste_Image.png把MongoDB安装目录加在Path后面,用分号隔开。
那么我们就能在系统的任何盘符,使用mongo命令了:
mongo 使用数据库
mongod 启动服务
mongoimport 导入数据
启动数据库:
Paste_Image.png--dbpath
就是选择数据库文档所在的文件夹。
show dbs:列出所有数据库
use 数据库名字:使用某个数据库
db:查看当前所在数据库
如果想新建数据库,也是use
,use
一个不存在的,就是新建。
student就是所谓的集合。集合中存储着很多json。
student是第一次使用,集合将自动创建。
Paste_Image.png
使用数据库
- 要使用数据库,干的第一件事情就是启动服务:
mongod --dbpath '数据库的位置'
例如:mongod --dbpath c:\mongo
- 查看所有数据列表:
show dbs
- 查看所有集合:
show collections
- 可以查看集合中的语句:
db.student.find()
- 使用数据库,创建数据库:
use student
注意:如果真的想把这个数据库创建成功,那么必须插入一个数据。
数据库中不能直接插入数据,只能往集合(collections)中插入数据,不需要创建集合,只需要写点语法
比如往user这个集合中插入一条数据:
db.user.insert({"name":"xiaoming","age":"20"})
这时就创建 了一个user这个集合
- 删除数据库,删除当前所在的数据库:
db.dropDatabase();
使用db
命令可以查看当前使用的是那个数据库 - 插入数据:
db.user.insert({"name":"xiaoming","age":"20"})
- 我们不可能一条一条的
insert
,所以,我们希望用记事本在外部写好数据库的形式,然后使用mongoimport导入数据库:
mongoimport --db test --collection restaurants --drop --file primer-dataset.json
-db test
:想往哪个数据库里面导入
--collection restaurants
: 想往哪个集合中导入
--drop
:把集合清空
--file primer-dataset.json
: 哪个文件
查找数据用find;
db.restaurants.find()
-
如果find中没有数据,将查出集合中所有文档。
-
精确匹配:在student集合中查找数学成绩为70分的学生
db.student.find({"score.shuxue":70});
- 多个条件:查找数学成绩为70,且年龄为12 的学生
db.student.find({"score.shuxue":70 , "age":12})
- 大于条件:查找语文成绩大于50的
db.student.find({"score.yuwen":{$gt:50}});
- 寻找所有年龄是9岁,或者11岁的学生
db.student.find( { $or:[{"age":9},{"age":11}] } );
- 查找完毕之后,打点调用sort,表示升降排序。
查找所有同学,按照语文成绩从高到低排,如果相同,按年龄从小到大排:
db.student.find().sort( { "score.yuwen": -1, "age": 1 } )
修改数据
- 查找名字叫做小明的,把年龄更改为16岁:
db.student.update({"name":"小明"},{$set:{"age":16}});
- 查找数学成绩是70,把年龄更改为33岁:
db.student.update({"score.shuxue":70},{$set:{"age":33}});
- 更改所有匹配项目:
db.student.update({"sex":"男"},{$set:{"age":33}},{multi: true});
加上
{multi: true}
这个条件可已更改所有匹配项
- 完整替换,不出现
$set
关键字了:
db.student.update({"name":"小明"},{"name":"大明","age":16});
删除数据
删除数学成绩为80分的
db.student.remove({"score.shuxue":"80"})
这样的话是删除所所有满足条件的,如果只想删除一个,加{ justOne: true }
属性。
db.student.remove({"score.shuxue":"80"},{ justOne: true })
网友评论