Mongodb快速入门

下载: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介绍 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种...
    测试帮日记阅读 457评论 0 1
  • 一、NoSQL概述 NoSQL是Not Only SQL的缩写,指的是非关系型数据库,与传统的关系型数据库相对应,...
    凛_冬_将_至阅读 2,120评论 0 4
  • 数据库 databases -------------------------------------------...
    社会你码ge阅读 311评论 0 0
  • NoSql数据库优缺点 在优势方面主要体现在下面几点: 简单的扩展 快速的读写 低廉的成本 灵活的数据模型 在不足...
    dreamer_lk阅读 2,792评论 0 6
  • 秋叶阵阵飘 秋光时时摇 蓝图胸中绘 奋斗之路遥
    千秋笔阅读 200评论 0 1