美文网首页
Mongodb快速入门

Mongodb快速入门

作者: 不要和我名字一样 | 来源:发表于2017-07-22 15:23 被阅读37次

下载:https://www.mongodb.com
文档:https://docs.mongodb.com/manual/

下载好之后双击进行安装,win7系统需要安装补丁,KB2731284。
直接下一步下一步安装完成。

Paste_Image.png

安装完之后配置环境变量:

Paste_Image.png

把MongoDB安装目录加在Path后面,用分号隔开。

那么我们就能在系统的任何盘符,使用mongo命令了:

mongo   使用数据库
mongod  启动服务
mongoimport  导入数据

启动数据库:

Paste_Image.png
--dbpath就是选择数据库文档所在的文件夹。
show dbs:列出所有数据库
use 数据库名字:使用某个数据库
db:查看当前所在数据库

如果想新建数据库,也是useuse一个不存在的,就是新建。

Paste_Image.png 插入数据

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 })

相关文章

网友评论

      本文标题:Mongodb快速入门

      本文链接:https://www.haomeiwen.com/subject/pkojkxtx.html