MongoDB简介,安装,增删改查
MongoDB到底是什么鬼?
那么好,所谓千呼万唤始出来,现在我就拉给你们看:
一.初识MongoDB 之 什么东西都得先从理论入手,你说是不是啊?
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
官方给出了以上的解释,那么综上所述,马德 F U C K ! 有效信息太少了(完全没用)
那么让我来用人类的语言讲述一下MongoDB吧
它和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,理论上没有主外键约束,没有存储的数据类型约束等等
关系型数据库中有一个 "表" 的概念,有 "字段" 的概念,有 "数据条目" 的概念
MongoDB中也同样有以上的概念,但是名称发生了一些变化,严格意义上来说,两者的概念即为相似,但又有些出入,不过无所谓,我们就当是以上概念就好啦
光说的话,还是有点儿模糊,就让我们来做一个小例子,进行一个对比吧
接下来我们先看一下MongoDB的数据结构:
{
"_id" : ObjectId("5bfcf269b990651011d59d00"),
"name" : "chaoge",
"test_list" : [
102,
108,
4,
5
],
"info" : {
"性别" : "男",
"height" : 172,
"weight" : 128
}
},
{
"_id" : ObjectId("5bfcf2f4b990651011d59d01"),
"name" : "chaoge_sb",
"age" : 30
},
{
"_id" : ObjectId("5bfe61c5004e553ad8af92c9"),
"name" : "强哥"
}
上面的格式还可以转化成下面这种样子:

这......这特么不就是字典吗?你说的对,如果你理解成了字典,那么证明了你只会Python,在其他语言中它又是别的类型了,我们把这种类型的玩意儿,叫做:Json
那么你就该恍然大悟了吧,MongoDB的每个表(Collection)中存储的每条数据(Documents)都是一个一个的Json,Json中的每一个字段(Key)我们称之为:Field
就此我们引出了三个关键字,Collection也就是关系型数据库中"表"的概念,Documents就是"数据条目",Field就是"字段"
二.MongoDB安装部署 之 你必须得先安装上数据库才能继续装X
关于MongoDB的安装,真的没有难度,真的真的没有难度,来跟着DragonFire一步一步操作,带你Legendary
首先分享给你一个MongoDB 3.4的msi安装包 点击这里可以下载哦(如果不能下载证明我还没搞定分享msi,自己下载一个吧)




安装完成之后,开始进入配置环节,首先我们要进入目录:
"C:\Program Files\MongoDB\Server\3.4\bin"

带着你配置环境变量,让X装的更加自然更加美:

之后的操作,windows 7 与 windows 10 不太一样,大同小异啦

windows 10 一路到底的"确定"
windows 7 在这里需要注意的是,Path路径移动到最后,输入:" ;C:\Program Files\MongoDB\Server\3.4\bin " 一定要带上 " ; " 哦
因为没有找到windows 7 操作系统的计算机,所以这里只能给windows 7 的同学说声抱歉了
OK!到了这里我们基本已经完成了部分操作了
我们来试一下成果吧
打开cmd窗口进行一次ZB的操作吧
mongo # 打开服务端
mongod # 打开客户端
MongoDB的默认端口是:27017
那我们来创建一个" C:\data\db\ "的目录吧
mkdir c:\data\db
三.MongoDB操作 之 原生ORM,根本不存在SQL语句
创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间
嗯嗯嗯嗯,我感受到了你内心的惊呼,瞅瞅你们这些没见过世面的样子
是的,MongoDB设计的比较随意,没有就认为你是在创建,use db1是不存在的,所以MongoDB就认为你是要创建并使用
这个概念一定要记清楚哦,MongoDB中如果你使用了不存在的对象,那么就等于你在创建这个对象哦
使用了不存在的对象,就代表创建对象,我们使用这一谬论创建一张表(Collection)试试
看来真的不是谬论,真的成功的创建了一个table的Collection
那么接下来就是在表(Collection)中添加一条数据了,怎么添加呢?
四.MongoDB 之 插入数据(insert insertOne insertMany) 之 Collection 点儿出一切操作 之 insert
insert:插入一条或者多条数据,需要带有允许插入多条的参数,这个方法目前官方已经不推荐喽
db.table.insert({"name":"xiaoqiang","age":20})
insertOne: 插入一条数据,官方推荐
db.table.insertOne({"name":"超哥","age":20})
我们可以看出来两种方法的返回值截然不同对吧
insertMany:插入多条数据,无需参数控制,官方推荐
db.table.insertMany({"name":"超哥1","age":20},{"name":"超哥2","age":19})
这就是我们向table中插入了多条数据:
[{
"name":"超哥1",
"age":20
},
{
"name":"超哥2",
"age":19
...
}]
五.MongoDB 之 查询数据(find findOne) 之 这里没有findMany
这里不是select,如果你的第一反应是select 证明你关系型数据库没白学
find() 无条件查找:将该表(Collection)中所有的数据一次性返回
db.table.find()
db.table.find({name:"超哥1"}) 条件查找:name等于超哥1的数据,这里会返回多条结果
db.table.find({name:"超哥1"}})
findOne()无条件查找一条数据,默认当前Collection中的第一条数据
db.table.findOne()
findOne({age:20}) : 条件查找一条age等于19的数据,如有多条数据则返回更靠前的数据
db.table.findOne({"age":20})
查询数据的时候,发现了有些数据出现错误了,要修改怎么办呢?
六.MongoDB 之 修改数据(update updateOne updateMany) 之 跟insert一样,不推荐update的写法
update({"name":超哥"},{$set:{"age":20}}):根据条件修改该条数据的内容
把name等于超哥中的age改为21,这里要注意的是({"条件"},{"关键字":{"修改内容"}}),其中如果条件为空,那么将会修改Collection中所有的数据
关于$set关键字的解释就是,本节最后再说,留个悬念
db.table.update({}"name":"超哥"},{$set:{"age":21}})
updateOne({"age":19},{$set:{"name":"超哥1"}}):根据条件修改一条数据的内容,如出现多条,只修改最高前的数据
把age等于19的所有数据中第一条数据的name改为WSSB
db.table.updateOne({"age":19},{$set:{"name":超哥1}})
根据条件修改所有数据的内容,多条修改,把age等于19的所有数据中的name改为超哥3
db.updateMany({"age":19},{$set:{"name":"超哥3"}})
上述中有一个$set的悬念,这个悬念呀,可能要留到再往后一些了
但是$set:{"name":"超哥1"}我还是要解释一下: $set 是update时的关键字,表示我要设置name属性的值为"超哥2"
那么我们之前说过MongoDB的灵活性,没有就代表我要创建,所以说如果该条Documents没有name属性,他就会自动创建一个name属性并且赋值为"超哥2"
更改了半天,我觉得,这些数据我都不想要了,该怎么办呢?
七.MongoDB 之 删除数据(remove) 之 如果你什么都不写,你讲失去全部的生命力
remove({}):无条件删除数据,这里要注意了,这是删除所有数据,清空Collection
当然了,我现在还不会操作,你看到的截图是我全部都写完之后的截图,如果跟着操作的话,那么你实在是太傻了,哈哈哈哈哈哈哈哈
db.table.remove({})
如果你的数据全没了,那么请再练习一次insertMany([{"name":"超哥"}])吧,你多练习一次,总比马上忘记要强吧
remove({"name":"超哥"}) : 条件删除name等于"超哥"的所有Document
db.table.remove({"name":"超哥"})
那么到这里呢,增删改查就已经完事儿了
MongoDB简介,安装,增删改查的更多相关文章
- MongoDB简介与增删改查
一.简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB 将数据存储为一个文档,数据 ...
- 利用koa实现mongodb数据库的增删改查
概述 使用koa免不了要操纵数据库,现阶段流行的数据库是mongoDB,所以我研究了一下koa里面mongoDB数据库的增删改查,记录下来,供以后开发时参考,相信对其他人也有用. 源代码请看:我的gi ...
- MongoDB 3.0.6 安装 增删改查
下载 安装包MSI http://yunpan.cn/cmhHdTPkXZRM2 访问密码 9b6c 上边提供的是 MongoDB 3.0.6 64Bit 的安装包 安装 如果不想直接安装在C盘.. ...
- nodejs对mongodb数据库的增删改查操作(转载)
首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-l ...
- mongod 安装,增删改查
SQL - MySQL Oracel DB2 sybase MSSQLMySQL : PHP > LAMPMySQL - 关系型数据库 - 语言学习成本高user_infoid name ...
- 69.nodejs对mongodb数据库的增删改查操作
转自:https://www.cnblogs.com/sexintercourse/p/6485381.html 首先要确保mongodb的正确安装,安装参照:http://docs.mongodb. ...
- MongoDB --- 02. 基本操作,增删改查,数据类型,比较符,高级用法,pymongo
一.基本操作 . mongod 启动服务端 2. mongo 启动客户端 3. show databses 查看本地磁盘的数据库 4. use 库名 切换到要使用的数据库 5. db 查看当前使用的数 ...
- webpack4+express+mongodb+vue 实现增删改查
在讲解之前,我们先来看看效果如下所示: 1)整个页面的效果如下: 2) 新增数据效果如下: 3) 新增成功如下: 4) 编辑数据效果如下: 5) 编辑成功效果如下: 6) 删除数据效果如下: 7) 删 ...
- python连接集群mongodb,封装增删改查
1.下载pymongo pip install pymongo 2.直接上代码 [ini配置文件] 封装读ini省略~~ [db.py] class Database(): def __init__( ...
- MongoDB学习之--增删改查(1)
本文是对mongodb学习的一点笔记,主要介绍最简单的增删改操作,初学,看着API,有什么错误,希望大家指正:(使用官方驱动) 1.增 增加操作是最简单的,构造bsonDcument插入即可: 方式1 ...
随机推荐
- 如何关闭phpstrom的更新提醒?
在file-----setting-------搜索updates 把检测版本更新的对勾点掉就可以了, 自己破解后的版本就别更新了,更新后就不能再用了,目前用代理服务器激活可以用版本3.3,升级到3. ...
- CHIMA网络安全攻防大赛经验分享
比赛模式 第一轮:20分钟基础知识赛(50道题) 安全运维,法律法规,linux操作系统等 第二轮:50分钟CTF夺旗(5道题) 题目涵盖 密码学 运用多种工具,如ASCII对照,古典密码,凯撒密码, ...
- k8s调度器之亲和性和反亲和性/节点选择器
容器在节点(物理机)上是如何部署的 是由调度器scheduler进行调度的 调度策略 随机 通过节点选择器选择某些节点 通过节点亲和性和pod的亲和性及反亲和性实现更细粒度的控制 参考 https:/ ...
- 最简单的策略模式代替if-else实战
一.需求 根据用户vip等级来返回不同的价格,vip等级是不固定的,随时可能要增加,价格也不是固定的. 二.常规的写法 /** * 如果有新增类型,就需要频繁的修改此处的代码! * 不符合开闭原则! ...
- 常见问题:计算机网络/运输层/UDP
几乎不对IP增加其他东西,无连接. 优势 速度快.适合实时. 无连接建立,没有连接时延. 无连接状态. 分组首部开销小.TCP需20字节,UDP仅需8字节. 使用UDP的协议 DNS SNMP RIP ...
- git rebase VS git merge
git rebase VS git merge 写在前面 如果你不能很好的应用 Git,那么这里为你提供一个非常棒的 Git 在线练习工具 Git Online(回复公众号「工具」,获取更多内容) , ...
- ASP.NET CORE(C#)与Spring Boot MVC(JAVA)
干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结 目录 C# VS JAVA 基础语法类比篇: 一.匿名类 二.类型初始化 三.委托(方 ...
- 《ucore lab1》实验报告
资源 ucore在线实验指导书 我的ucore实验代码 练习1:理解通过make生成执行文件的过程 详见<ucore lab1 exercise1>实验报告 练习2:使用qemu执行并调试 ...
- Hue,Oozie运行sqoop找不到驱动解决办法
一.前言 平台:CDH 5.13.0 公司在客户那边有个项目需要部署cloudera平台,部署的时候,在这个版本的cdh中,除了基本组件,还选了sqoop2作为数据传输工具,希望能在Oozie中通过工 ...
- 使用AOP进行权限验证
首先我们定义一个切入点(匹配com.ed.controller.Seller开头的controller的所有public方法) @Pointcut("execution(public * c ...