MongoDB增删改查

摘要:
MongoDB-3)findOne()无条件查找一条数据,默认当前Collection中的第一条数据findOne:条件查找一条age等于19的数据,如有多条数据则返回更靠前的数据查询数据的时候,发现了有些数据出现错误了,要修改怎么办呢?

一.MongoDB操作 之 原生ORM,根本不存在SQL语句

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

MongoDB增删改查第1张

嗯嗯嗯嗯,我感受到了你内心的惊呼,瞅瞅你们这些没见过世面的样子

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

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

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

MongoDB增删改查第2张

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

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

二.MongoDB 之 插入数据(insert insertOne insertMany) 之 Collection 点儿出一切操作 之 insert

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

MongoDB增删改查第3张

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

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

MongoDB增删改查第4张

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

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

MongoDB增删改查第5张

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

复制代码
[{
  "name":"DragonFire",
  "age":20},
{
"name":"WuSir",
"age":19
}]
复制代码

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

插入完成就要查询

三.MongoDB 之 查询数据(find findOne) 之 这里没有findMany

这里不是select,如果你的第一反应是select 证明你关系型数据库没白学

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

MongoDB增删改查第8张

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

说到这里,有的同学不禁要问一下:"_id":ObjectId("乱七八糟一道对看着毫无关系的一对字符串") 是什么,我们插入的时候并没有一个字段(Field)并没有_id这个,

对了这就是MongoDB自动给我们添加到系统唯一标识"_id" 是一个ObjectId 类型,我们会在数据类型中第一个说到他(MongoDB 之 数据类型 最无聊! But 最有用! MongoDB - 3)

MongoDB增删改查第9张

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

MongoDB增删改查第10张

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

MongoDB增删改查第11张

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

四.MongoDB 之 修改数据(update updateOne updateMany) 之 跟insert一样,不推荐update的写法

update({"name":"DragonFire"},{$set:{"age":21}}):根据条件修改该条数据的内容

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

关于$set关键字的解释就是,本节最后再说,留个悬念

MongoDB增删改查第12张

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

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

MongoDB增删改查第13张

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

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

MongoDB增删改查第14张

上述中有一个$set的悬念,这个悬念呀,可能要留到再往后一些了

但是$set:{"name":"WSSB"}我还是要解释一下: $set 是update时的关键字,表示我要设置name属性的值为"WSSB"

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

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

四.MongoDB 之 删除数据(remove) 之 如果你什么都不写,你讲失去全部的生命力

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

当然了,我现在还不会操作,你看到的截图是我全部都写完之后的截图,如果跟着操作的话,那么你实在是太傻了,哈哈哈哈哈哈哈哈

MongoDB增删改查第15张

如果你的数据全没了,那么请再练习一次insertMany([{"name":"DragonFire"}])吧,你多练习一次,总比马上忘记要强吧

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

MongoDB增删改查第16张

那么到这里呢,增删改查就已经完事儿了

之后我们来说一下MongoDB的数据类型,跟你们透漏一下,MongoDB的数据类型,老(te)有(bie)意(wu)思(liao)了

免责声明:文章转载自《MongoDB增删改查》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux(Centos)下安装git步骤详解vim 快速入门下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于MongoDB 配置安全选项(security)后无法正常启动(Unrecognized option: security)

报错为(Unrecognized option: security) 极有可能是你的编码格式不正确(这个错误应该不算是什么问题,但是没有看文档,网上的资料又都是copy,留下笔记希望能够帮到别人) 确保配置文件使用ASCII编码。该mongod的 情况下不支持非ASCII编码,包括UTF-8的配置文件,可以使用notepad编辑器,我将其改为了ANSL编码...

Mongodb到mysql数据库的数据迁移(Java,Windows)

运行环境为windows 测试过260万的数据表,迁移大概要10分钟左右,当然肯定和网络,字段大小什么的有关系。 遇到的坑和注意点都用紫色标记了 PS:第一次写这么长的东西 一、Mongodb导出命令mongoexport 本地安装Mongodb,在安装目录的/bin下按住shift并右键“在此处打开命令窗口”,可执行以下语句进行导出。 mongoexpo...

四、MongoDB的查询

一、MongoDB的下载、安装与部署 二、MongoDB的基础知识简介 三、MongoDB的创建、更新和删除 1 db.blogs.insert([ 2 { 3 "author": "张三", 4 "title": "MongoDB简介", 5 "content": "它是介于关系型数据库...

mongodb 操作 Date字段类型 mongodb shell api

一,环境 php 7.2 + thinkphp 5 mongodb 3.4 二,针对Date字段的操作 mongodb shell: 写入: db.students3.insert([ { "_id" : 1, "tests" : [ 95, 92, 90 ], "lastUpdate" : ISODate("2019-01-01T00:00:00Z")...

MongoDB数据创建与使用

MongoDB数据创建与使用 创建数据库代码功能:读取本地文本文件,并保存到数据库中 import pymongo #连接mongo数据库 client = pymongo.MongoClient('localhost',27017) #创建数据库 walden = client['walden'] #创建表 sheet_tab = walden['s...

MongoDB连接

MongoDB - 连接 启动 MongoDB 服务 在 MongoDB 安装目录的 bin 目录下执行 mongodb 启动 MongoDB 服务。 执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息。 你可以使用 MongoDB shell 来连接 MongoDB 服务器。你...