MongoDB一 之增删改查

一.初识MongoDB

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

它和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,理论上没有主外键约束,没有存储的数据类型约束等等

关系型数据库中有一个 "表" 的概念,有 "字段" 的概念,有 "数据条目" 的概念

MongoDB中也同样有以上的概念,但是名称发生了一些变化,严格意义上来说,两者的概念即为相似,但又有些出入,不过无所谓,我们就当是以上概念就好啦

光说的话,还是有点儿模糊,就让我们来做一个小例子,进行一个对比吧

下面我们做一张表:

这是我们用关系型数据库做的一张很简单的User表对吧

接下来我们再看一下MongoDB的数据结构:

这......这特么不就是个列表,里面放着三个字典吗?你说的对,如果你理解成了列表和字典,那么证明了你只会Python,在其他语言中它又是别的类型了,我们把这种类型的玩意儿,叫做:Json

MongoDB的每个表(Collection)中存储的每条数据(Documents)都是一个一个的Json,Json中的每一个字段(Key)我们称之为:Field

就此我们引出了三个关键字,Collection也就是关系型数据库中"表"的概念,Documents就是"数据条目",Field就是"字段"

二.MongoDB安装部署

关于MongoDB的安装

首先分享给你一个MongoDB 3.4的msi安装包 点击这里可以下载

安装完成之后,开始进入配置环节,首先我们要进入目录:

"C:\Program Files\MongoDB\Server\3.4\bin"

配置环境变量

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

windows 10 一路到底的"确定"

windows 7 在这里需要注意的是,Path路径移动到最后,输入:"  ;C:\Program Files\MongoDB\Server\3.4\bin  " 一定要带上 "

OK!到了这里我们基本已经完成了部分操作了

我们来试一下成果吧

打开cmd窗口

那我们来创建一个" C:\data\db\ "的目录

好了目录已经有了,再次试一下

好了开启成功了

那么服务开启了,客户端怎么去连接呢,这时我们需要另一个cmd窗口开启mongo的客户端

到此,我们成功的完成了,服务端的部署开启,还有客户端的链接

提示:千万别把这两个cmd窗口关了,不然你还得重新打开一次

三  MongoDB基本操作

一  创建库和表

创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间

是的,MongoDB设计的比较随意,没有就认为你是在创建,use LuffyCity_Com是不存在的,所以MongoDB就认为你是要创建并使用

这个概念一定要记清楚哦,MongoDB中如果你使用了不存在的对象,那么就等于你在创建这个对象

使用了不存在的对象,就代表创建对象,我们使用这一谬论创建一张表(Collection)试试

看来真的不是谬论,真的成功的创建了一个Oldboy的Collection

那么接下来就是在表(Collection)中添加一条数据了,怎么添加呢?

二. MongoDB 之 插入数据

insert:插入一条或者多条数据,需要带有允许插入多条的参数,这个方法目前官方已经不推荐

db.Oldboy.insert({"name":"DragonFire","age":20})

insertOne: 插入一条数据,官方推荐

我们可以看出来两种方法的返回值截然不同

insertMany:插入多条数据,无需参数控制,官方推荐

这就是我们向LuffyCity_Com.Oldboy中插入了多条数据:

[{
  "name":"DragonFire",
  "age":20
},{ "name":"WuSir", "age":19}]

这里留下一个数据类型的悬念

插入完成就要查询

三. MongoDB  之 查询数据

这里不是Mysql 中的 select

find() 无条件查找:将该表(Collection)中所有的数据一次性返回

db.Oldboy.find({name:"WuSir2b"}) 条件查找:name等于WuSir2b的数据,这里会返回多条结果

"_id":ObjectId是什么,我们插入的时候并没有一个字段(Field)并没有_id这个,

这是MongoDB自动给我们添加到系统唯一标识"_id" 是一个ObjectId 类型

findOne()无条件查找一条数据,默认当前Collection中的第一条数据

findOne({age:19}) : 条件查找一条age等于19的数据,如有多条数据则返回更靠前的数据

查询数据的时候,发现了有些数据出现错误了,要修改怎么办呢?

四.MongoDB 之 修改数据

update({"name":"DragonFire"},{$set:{"age":21}}):根据条件修改该条数据的内容,跟insert一样,不推荐update的写法

把name等于DragonFire中的age改为21,这里要注意的是({"条件"},{"关键字":{"修改内容"}}),其中如果条件为空,那么将会修改Collection中所有的数据

updateOne({"age":19},{$set:{"name":"WSSB"}}):根据条件修改一条数据的内容,如出现多条,只修改最高前的数据

把age等于19的所有数据中第一条数据的name改为WSSB

updateMany({"age":19},{$set:{"name":"pig_qi"}}):根据条件修改所有数据的内容,多条修改

把age等于19的所有数据中的name改为WSSB

那么我们之前说过MongoDB的灵活性,没有就代表我要创建,所以说如果该条Documents没有name属性,他就会自动创建一个name属性并且赋值为"WSSB"

更改了半天,我觉得,这些数据我都不想要了,该怎么办呢?

五.MongoDB  之  删除数据

remove({}):无条件删除数据,这里要注意了,这是删除所有数据,清空Collection

remove({"name":"DragonFire"}) : 条件删除name等于"DragonFire"的所有Document

之后我们来说一下MongoDB的数据类型,跟你们透漏一下,MongoDB的数据类型

原文地址:https://www.cnblogs.com/guoxiaoyan/p/9403497.html

时间: 2024-08-30 05:27:23

MongoDB一 之增删改查的相关文章

使用MyEclipse对MongoDB数据库 进行增删改查操作

前面写了一篇MongoDB的下载与安装,接下来此篇写的是MongoDB数据库在JAVA程序中的基本功能: 使用MyEclipse对MongoDB数据库进行增删改查操作 1.导入JAR包 使用了Spring3.0:此类包,可以上网查询"MongoDB相关JAR包" 2.创建一个Person实体类 源代码如下: public class Person(){ //属性 Private String id; //id Private String name; //name Private in

nodejs对mongodb数据库的增删改查操作(转载)

首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-linux 另外可以参考我的另一篇博文 http://www.cnblogs.com/sexintercourse/p/5774310.html 指导mongo和nodejs的开发 然后下载nodejs的mongodb的driver npm install mongodb 编写一个测试的程序: 1 v

node.js对mongodb的连接&增删改查(附async同步流程控制)

1.启动mongodb数据库 官网下载mongodb数据库 在mongodb根目录下创建文件夹:假设取名为test. 我们认为test就是mongodb新建的数据库一枚. 创建批处理文件 xxx.bat,内容如下: 运行e盘mongodb文件夹下bin目录下的 mongod.exe,参数为 -dbpath E:\mongodb\test. E:\mongodb\bin\mongod.exe -dbpath E:\mongodb\test 这样就启动了mongodb下test数据库的服务器. 2.

MongoDB入门篇--增删改查

在上篇博文mongodb已经成功启动:http://blog.csdn.net/u010773667/article/details/41847487,接下来就该进行一系列操作了.我们再开一个cmd,输入[mongo]命令打开shell即mongodb的客户端,默认连接的是"test"数据库,我这里设置集合(表)为student.图一: 1. 添加insert 语法:db.集合.insert({"Col1":"列值1","Col2&qu

Mongodb基本操作入门,增删改查和索引

主要进程 mongod.exe为启动数据库实例的进程. mongo是一个与mongod进程进行交互的JavaScript shell进程,它提供了一些交互的接口函数用户对数据库的管理. 基本命令 show  databases;   查询数据库列表 show  collections;   查询全部的集合   相应关系型数据库的表 use  test;  数据库切换   切换到test数据库 mongodb数据库记录成为文档 插入文档命令 db.customers.save({name:"张三&

Mongodb基本操作入门,增删改查

主要进程 mongod.exe为启动数据库实例的进程. mongo是一个与mongod进程进行交互的JavaScript shell进程,它提供了一些交互的接口函数用户对数据库的管理. 基本命令 show  databases;   查询数据库列表 show  collections;   查询所有的集合   对应关系型数据库的表 use  test;  数据库切换   切换到test数据库 mongodb数据库记录成为文档 插入文档命令 db.customers.save({name:"张三&

MonGoDb 简单的增删改查

一: 启动数据库服务 1: cmd 进入数据库安装目录的 bin 目录 2: mongpd --dbpath 数据库数据存放目录 例如: mongod --dbpath E:\NODE\MonGoDB 数据库数据存放目录为任意的已存在目录 二: 连接已经启动的数据库服务 1: cmd 进入数据库安装目录的 bin 目录, (第一步打开的窗口不能关闭和停止) 2: mongo 数据库访问地址:端口 例如: mongo 127.0.0.1:27017 本机的访问地址为 127.0.0.1 或者 lo

MongoDB的基本使用及java对MongoDB的基本增删改查

MongoDB的特点 MongoDB 是文档存储数据库,存储结构灵活 MongoDB 支持复杂查询操作.支持序列 MongoDB 采用C++开发,可以做分布式扩展 MongoDB 采用BSON格式存储 MongoDB 支持js引擎,可以编写js语句块 安装和使用 1.以管理员身份运行cmd.exe进入命令行控制台,启动mongod服务端, mongod --dbpath F:\mongodb\data --logpath F:\mongodb\logs\a.log启动mongo客户端:mongo

CDH5.15.1 hive 连接mongodb配置及增删改查

1. 下载 wget http://repo1.maven.org/maven2/org/mongodb/mongo-hadoop/mongo-hadoop-hive/2.0.2/mongo-hadoop-hive-2.0.2.jar wget http://repo1.maven.org/maven2/org/mongodb/mongo-hadoop/mongo-hadoop-core/2.0.2/mongo-hadoop-core-2.0.2.jar wget http://repo1.ma