mongoDB的学习【小白的福音】
学习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的学习【小白的福音】相关推荐
- 双刃剑MongoDB的学习和避坑
双刃剑MongoDB的学习和避坑 MongoDB 是一把双刃剑,它对数据结构的要求并不高.数据通过key-value的形式存储,而value的值可以是字符串,也可以是文档.所以我们在使用的过程中非常方 ...
- 小张Markdown 学习小白篇
小张Mrakdown 学习小白篇 简介 这是一篇关于如何高效做出笔记的葵花宝典,也是我第一次从头学习如何用typora做出好看且高效的笔记,我将从下载,安装,和书写这三个方面进行总结,希望能对和我一样 ...
- MongoDB开发学习开天辟地,经典入门
如果你从来没有接触MongoDB或对MongoDB有一点了解,如果你是C#开发人员,那么你不妨花几分钟看看本文.本文将一步一步带您轻松入门. 阅读目录 一:简介 二:特点 三:下载安装和开启服务器 四 ...
- MongoDB语法学习
MongoDB语法学习 MongoDB官方文档 mongodb语法有很多,如多列索引,查询时可以统计函数,支持多条件查询,但是目前对于多表的查询是暂不支持的,但是可以通过数据冗余来解决多表查询的问题. ...
- VBA小白的福音 如何在EXCEL中实现连续编号自动更新打印?
VBA小白的福音 如何在EXCEL中实现连续编号自动更新打印? 用下列方法,无论你需要输入连续编号的单元格是否改变,均不需要改变代码. 第一步:将下列代码拷贝到宏中(方法请问度娘,搜代码的人应该会的) ...
- 深度学习小白如何看懂神经网络模型/图?
深度学习小白如何看懂神经网络模型/图? 神经网络的图还是比较容易看懂的,比电路图什么的要好懂多了.只是刚开始接触有些不习惯罢了,多看一些就好了. 下面举几张神经网络图作为例子(由简单到复杂). 简单的 ...
- MongoDB的学习-安装与springboot的整合
mongoDB的学习: 1.mongodb 安装及使用 mongodb 安装及使用__mongodb安装使用 MongoDB社区下载 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上 ...
- 尚硅谷+黑马程序员MongoDB视频学习笔记(一)
本学习笔记是来源于学习B站上的尚硅谷和黑马的MongoDB教学视频而做的知识总结. 一.数据库(Database) 数据库是按照数据结构来组织.存在和管理数据的仓库.说白了,数据库就是存在数据的仓库. ...
- Mongodb使用学习笔记(二)
文章目录 Mongodb使用学习笔记(二)之查询篇 1. MongoDB命令学习 (1) MongoDB 查询文档 1.1 全部查询 1.2 单条件查询 1.3 多条件查询 1.3.1 AND拼接多条 ...
- Mongodb使用学习笔记(三)
文章目录 Mongodb使用学习笔记(三) 1. MongoDB 更新文档 1.1 update() 1.2 save() Mongodb使用学习笔记(三) 1. MongoDB 更新文档 参考:Mo ...
最新文章
- JavaWeb笔记01
- oracle 全局临时变量,如何解析Oracle PL / SQL中的简单XML片段并将其加载到全局临时表中?...
- FPGA的设计艺术(11)FPGA的构建过程
- fzu 2109 Mountain Number 数位DP
- Python Mysql学习总结
- java h5 交互 传数组, JS数组/对象的值为什么变了?你需要深入理解对象的值传递...
- 如何在 Mac 上使用任务控制空间?
- 《麦肯锡方法》读书笔记17
- 在低版本浏览器内核中适配replaceAll
- 用艾宾浩斯曲线记忆周期来背单词是否有理论依据?
- 世界强大的移动便携图形工作站介绍
- windows系统设置定时开关机的方法
- wgs84 转百度地图坐标
- 联想一体机计算机用户名锁定,联想电脑输入密码多次被锁定怎么办
- 免费小说阅读器(Android版本)全站开源
- axios系列之拦截器
- Flask+BootStrap+SQLite+ECharts编写的教学问卷调查系统
- python画多层网络_在pymn中修改多层网络图
- mac下安装cherrytree
- 英雄算法联盟 | 31天让你的算法与众不同
热门文章
- vue之表单处理(一)
- 输出商品列表,用户输入序号,显示用户选中的商品。 商品 li = [“手机“, “电脑“, “鼠标垫“, “游艇“ ]
- Python实例之自动轨迹绘制(文件和tutle库的应用)
- 世界十大笔记本品牌排名:您的电脑排第几?(组图)
- 【4】Maxwell轴向电机怎样调用出三相线电压波形
- element合并表格?
- redis特殊数据类型geospatial
- 传统数据库的四大分类
- 物联网巨头时代下细分市场独角兽图鉴
- html三因子模型,中国股票市场的三因子模型.pdf