学习mongoDB。
首先下载mongoDB:https://www.mongodb.com/download-center#community;一定要记住自己的安装目录
然后在安装的时候,选择customer格式,才能改目录
我的目录是:c:/program Files/MongoDB/Server/3.6/bin;这里注意,这个是自动默认的
然后安装成功后,在server那个级别里,上面会有一个文件夹。
然后在任意一个盘里面,我用的是F盘,建一个空文件夹叫data,在里面建立一个空文件夹叫db;
在data文件夹里面创建一个startMongo.bat文件,再创建一个mongo.bat文件。
.bat文件称之为快速执行文件。
首先我们要链接mongod.exe 先找到我们的F:/data/ 然后找到c:/program Files/MongoDB/Server/3.6/bin;
然后输入命令行:C:\Program Files\MongoDB\Server\3.6\bin>mongod --dbpath f:/data/db;
成功的标志是:2017-12-07T16:25:44.791+0800 I NETWORK [initandlisten] waiting for connections on port 27017
此时打开db就有东西了,这就说明我们我们已经和mongod关联起来了,后期就可以在这个盘里面存储数据。
//打开连接池的方式
在F:\data下创建一个test.txt文件,编码为utf-8无BOM格式。然后内容为:
c:
cd c:\Program Files\MongoDB\Server\3.6\bin
mongod --dbpath f:/data/db
然后另存为startMongo.bat文件
成功标志为:2017-12-07T16:58:19.483+0800 I NETWORK [initandlisten] waiting for connections
on port 27017
然后双击startMongo.bat文件,就可以打开数据库的连接池。
这里注意一下,当我们建立startMongo.bat的时候,要先把命令窗口给关掉,这样才能验证我们的startMongo.bat是不是成功的。
我安装的时候一直出现闪退的情况,不是很明白为什么。
然后修改test.txt文件为:
c:
cd c:\Program Files\MongoDB\Server\3.6\bin
mongo --dbpath f:/data/db
另存为mongo.bat文件双击

使用的时候,先打开startMongo,链接池打开,命令窗口不能关掉,否则就断了链接池,然后打开mongo.bat,然后又会出现一个尖角号,可以编辑【类似于node出来的交互式解释器】。说明成功了,其实就是进入了shell终端

进入shell终端之后,我们执行几个命令
db 这个显示的是我们的数据库,名字默认为test
db.test =》 test.test这说明db下面有一个叫test的表
db.help() =>获取db下面的方法
db.test.help() => db下面的表test下面的方法
db.test.find().help() =>db下面的表中关于查询的方法。

//创建数据库
1、创建一个名叫movie的数据库
1)首先我们要下载一个可视化工具,叫robomongodb现在改名叫robo 3T:https://robomongo.org/download;
下载的时候我把地址放在了和server的同一级。
然后打开页面,打开的时候先creat一个,然后connect!就连上了我们现在的27017
然后再mongo命令里,输入:
> use movies得到
switched to db movies就创建一个叫做movies的数据库;
这里面有一个规则就是有则切换,无则创建并切换!
这个时候你在在命令行里面输入db得到的就是movies;表示替换了!
但是这个时候你在robo里面右击refresh的时候,movies是不会出来的。为什么呢?因为movies里面没有东西,我们接下来的工作就是要往movies里面写东西。
2)先创建一个集合/表(标的名称为list)
> db.createCollection('list')
{ "ok" : 1 }
这个时候你在robo里面右击refresh的时候,movies就会出来了。里面有一个集合,集合里面有一个叫list的表
这个时候我们再db.list,就会出来movies.list。
3)完成表的增删改查功能
show dbs可以显示当前的数据库
查看数据库的版本:db.version()
查看数据库的状态:db.stats()
查询当前数据库链接的机器地址:db.getMongo()
删除当前的数据库:db.dropDatabase()

2、数据的增删改查 list是你的表名称

我们以豆瓣为例子
首先打开豆瓣的开发者api:https://developers.douban.com/wiki/?title=api_v2
然后找到电影api:https://developers.douban.com/wiki/?title=movie_v2
再找到top250:https://developers.douban.com/wiki/?title=movie_v2#top250
找到对应的url:/v2/movie/top250
把豆瓣的域名和url(相当于路由结合在一起):https://api.douban.com/v2/movie/top250
会得到很多数据,然后打开新的标签页:Json.cn,把数据粘进去
得到之后复制,打开hbuilder,建立一个douban.json文件,粘进去就可以啦!

①增:insert/save
1)增加一条
>>db.list.insert({movieID:1,name:'羞羞的铁拳'})
>>db.list.insertOne({})
>>db.list.save({})
2)增加多条(注意多条数据的时候,外面是数组)
>>db.list.insertMany([{},{},{}])

②删:delect/remove
>>db.list.remove({title:'肖申克的救赎'})但是remove已经过时了,我们用的是deleteOne({})和deleteMany({})
1)删除一条
deleteOne({title:'肖申克的救赎'})
2)删除多条
deleteMany({title:'肖申克的救赎'})
3)删除所有
>>db.list.remove({})
>>db.list.deleteMany({})

③改:update/updataMany
一般都是先查询到,然后再改正
db.list.update({title:'霸王别姬'},{$set:{title:'基佬的救赎'}})
1)以前的方法:$gt : 1 带条件的更新,$gt表示大于1的所有;$lt表示小于;$gte:大于等于;$lte:小于等于;$inc:表示加(这个只能加数字,所以要转换);
db.list.updateMany({year:{$lt:'1995'}},{$set:{year:'1000'}})
db.list.updateMany({year:'1000'},{$inc:{year:1000}})
db.list.updateMany({year:'1000'},{$inc:{year:-1000}}) //表示减1000

>>只更新第一条记录:db.list.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
>>全部更新:db.list.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
>>只添加第一条:db.list.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
>>全部添加加进去:db.list.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
>>全部更新:db.list.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
>>只更新第一条记录:db.list.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );

2)现在的方法:
>>db.list.updateOne({},{})
>>db.list.updateMany({},{})
db.list.updateMany({year:{$lt:'1995'}},{$set:{year:'1000'}})

④查:query/find[重中之重]
db.list.find()可以获得所有的数据的文档,因为篇幅的原因,我把数据只剩下三条。{},{},{}这个时候出来的数据都在一堆,不易阅读。
但是我们需要的是它变成这样:[{},{},{}],也就是一个json文档。那么如何操作呢?我们留下一个疑问!
而pretty()方法以格式化的方式来显示所有文档。
>db.list.find().pretty()命令之后后可以让你的文档更容易观察。

1)有条件的查询
db.list.find({year:'1997'}).pretty()
db.list.find({year:{$gt:{'1997'}}}).pretty()
但是上面这种情况会把相应的所有内容都显示出来,有时候我们只需要自己需要的。

2)有条件的获取自己所知道的。这个和后台就很像了,他只是相应的传给前端一些前端需要的数据。
db.list.find({year:'1997'},{title:1,year:1,"_id":0}).pretty()
结果是这样的:{ "title" : "美丽人生", "year" : "1997" }
db.list.find({year:'1997'},{title:1,year:1,"_id":1}).pretty()
结果是:
{
"_id" : ObjectId("5a2b8cae2bbf13d751991793"),
"title" : "美丽人生",
"year" : "1997"
}

3)当我们查询所有的,但是只要名字和年份的时候,就需要有第二个参数了。第二个参数也是一个对象哦~
db.list.find({},{title:1,year:1,"_id":0}).pretty()
结果就是:
{ "title" : "霸王别姬", "year" : 1000 }
{ "title" : "美丽人生", "year" : "1997" }
{ "title" : "千与千寻", "year" : "2001" }
这里可以发现,year里面一个数字型,两个字符串型。这个是因为上面的某些操作,就是那个转换$icn的那个,所以不用担心啦!

4)下面我们再说加上大于小于的这种查询
db.list.find({year:{$lt:{'1997'}}},{title:1,year:1,"_id":0}).pretty()

5)接着我们讲一下关于取特定的数据,并且把这些数据组成一个数组,然后把重复的去去掉的这种操作
db.list.distinct('year')
结果是:[ 1000, "1997", "2001" ]
!!!这里说一个题外话,就是在robo里面的黑色的条框里面,也可以直接输入命令,然后点击左上角的绿色三角箭头。就可以执行啦~

6)模糊查询 双斜杠//
db.list.find({})
db.list.find({title:/人/},{title:1})

7)条件查询
db.list.find({title:"肖申克的救赎",year:"1994"},{title:1})

8)升序与降序 升序用的是sort 按照什么就用什么 当数值为1的时候为升序 -1为降序
升序>>db.list.find({},{title:1}).sort({year:1})
降序>>db.list.find({},{title:1}).sort({year:1})

9)限制查询的数量 limit,这个只能查询前x条数据
db.list.find({},{title:1}).limit(x)
db.list.find({},{title:1}).limit(5)

10)查询y以后的数据,不包括第10条
db.list.find({},{title:1}).skip(y)
db.list.find({},{title:1}).skip(18)
那么如果想要知道第五条到第八条的数据,就可以:db.list.find({},{title:1}).skip(4).limit(3)
利用上述功能我们可以做分页功能

11)或$or查询 首先是一个$or然后里面是一个数组!
db.list.find({$or:[{year:'1993'},{year:'1995'}]},{title:1,year:1,'_id':0})

12)按照某列进行排序计数,以我的理解就是,先找到符合这个属性的数据,然后统计起来得出一个数值
db.list.find({alt:{$exists:true}}).count()

到这里呢,我们的mongoDB增删改查就告一段落啦~

//接下来就是node.js与mongoDB的并用!

转载于:https://www.cnblogs.com/yimei/p/8011610.html

mongoDB的学习【小白的福音】相关推荐

  1. 双刃剑MongoDB的学习和避坑

    双刃剑MongoDB的学习和避坑 MongoDB 是一把双刃剑,它对数据结构的要求并不高.数据通过key-value的形式存储,而value的值可以是字符串,也可以是文档.所以我们在使用的过程中非常方 ...

  2. 小张Markdown 学习小白篇

    小张Mrakdown 学习小白篇 简介 这是一篇关于如何高效做出笔记的葵花宝典,也是我第一次从头学习如何用typora做出好看且高效的笔记,我将从下载,安装,和书写这三个方面进行总结,希望能对和我一样 ...

  3. MongoDB开发学习开天辟地,经典入门

    如果你从来没有接触MongoDB或对MongoDB有一点了解,如果你是C#开发人员,那么你不妨花几分钟看看本文.本文将一步一步带您轻松入门. 阅读目录 一:简介 二:特点 三:下载安装和开启服务器 四 ...

  4. MongoDB语法学习

    MongoDB语法学习 MongoDB官方文档 mongodb语法有很多,如多列索引,查询时可以统计函数,支持多条件查询,但是目前对于多表的查询是暂不支持的,但是可以通过数据冗余来解决多表查询的问题. ...

  5. VBA小白的福音 如何在EXCEL中实现连续编号自动更新打印?

    VBA小白的福音 如何在EXCEL中实现连续编号自动更新打印? 用下列方法,无论你需要输入连续编号的单元格是否改变,均不需要改变代码. 第一步:将下列代码拷贝到宏中(方法请问度娘,搜代码的人应该会的) ...

  6. 深度学习小白如何看懂神经网络模型/图?

    深度学习小白如何看懂神经网络模型/图? 神经网络的图还是比较容易看懂的,比电路图什么的要好懂多了.只是刚开始接触有些不习惯罢了,多看一些就好了. 下面举几张神经网络图作为例子(由简单到复杂). 简单的 ...

  7. MongoDB的学习-安装与springboot的整合

    mongoDB的学习: 1.mongodb 安装及使用 mongodb 安装及使用__mongodb安装使用 MongoDB社区下载 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上 ...

  8. 尚硅谷+黑马程序员MongoDB视频学习笔记(一)

    本学习笔记是来源于学习B站上的尚硅谷和黑马的MongoDB教学视频而做的知识总结. 一.数据库(Database) 数据库是按照数据结构来组织.存在和管理数据的仓库.说白了,数据库就是存在数据的仓库. ...

  9. Mongodb使用学习笔记(二)

    文章目录 Mongodb使用学习笔记(二)之查询篇 1. MongoDB命令学习 (1) MongoDB 查询文档 1.1 全部查询 1.2 单条件查询 1.3 多条件查询 1.3.1 AND拼接多条 ...

  10. Mongodb使用学习笔记(三)

    文章目录 Mongodb使用学习笔记(三) 1. MongoDB 更新文档 1.1 update() 1.2 save() Mongodb使用学习笔记(三) 1. MongoDB 更新文档 参考:Mo ...

最新文章

  1. JavaWeb笔记01
  2. oracle 全局临时变量,如何解析Oracle PL / SQL中的简单XML片段并将其加载到全局临时表中?...
  3. FPGA的设计艺术(11)FPGA的构建过程
  4. fzu 2109 Mountain Number 数位DP
  5. Python Mysql学习总结
  6. java h5 交互 传数组, JS数组/对象的值为什么变了?你需要深入理解对象的值传递...
  7. 如何在 Mac 上使用任务控制空间?
  8. 《麦肯锡方法》读书笔记17
  9. 在低版本浏览器内核中适配replaceAll
  10. 用艾宾浩斯曲线记忆周期来背单词是否有理论依据?
  11. 世界强大的移动便携图形工作站介绍
  12. windows系统设置定时开关机的方法
  13. wgs84 转百度地图坐标
  14. 联想一体机计算机用户名锁定,联想电脑输入密码多次被锁定怎么办
  15. 免费小说阅读器(Android版本)全站开源
  16. axios系列之拦截器
  17. Flask+BootStrap+SQLite+ECharts编写的教学问卷调查系统
  18. python画多层网络_在pymn中修改多层网络图
  19. mac下安装cherrytree
  20. 英雄算法联盟 | 31天让你的算法与众不同

热门文章

  1. vue之表单处理(一)
  2. 输出商品列表,用户输入序号,显示用户选中的商品。 商品 li = [“手机“, “电脑“, “鼠标垫“, “游艇“ ]
  3. Python实例之自动轨迹绘制(文件和tutle库的应用)
  4. 世界十大笔记本品牌排名:您的电脑排第几?(组图)
  5. 【4】Maxwell轴向电机怎样调用出三相线电压波形
  6. element合并表格?
  7. redis特殊数据类型geospatial
  8. 传统数据库的四大分类
  9. 物联网巨头时代下细分市场独角兽图鉴
  10. html三因子模型,中国股票市场的三因子模型.pdf