《NoSQL》非关系型数据库MongoDB 学习笔记!

Mongo基础:

使用数据库:

使用use 命令 后面跟着要使用的数据库名字即可, 例如:use cities, 值得注意的是, mongo中不像mysql, 还需要先创建数据库,后访问, mongo中,你无需先创建,当你使用use命令去访问一个不存在的数据库的时候, 这个数据库在内存中就已经被创建了!

use users

查看当前使用的数据库:

db

使用集合:

集合, 可以理解为是mysql数据库中的表, mongo中, 一个数据库可以有多个集合。

使用 db命令, 跟上一个集合名字,就可以访问一个集合, 同上,mongo中的集合,不需要先创建,

db.集合名字, 例如:db.users

插入一条文档:

文档, 可以理解为mysql数据库中,表中的一行又一行的数据, 但是mongo数据库中的文档, 则存的数据差不多是:JSON 类型的数据。

document = {

"name": "zhangsan",

"age": 22

}

db.users.insertOne(document)

查看集合中的所有文档:

db.users.find().pretty()

查询一条则使用findOne()

更新一条文档:

db.users.updateOne(filter={}, update={$set: {}})

删除一条或者多条文档:

db.users.deleteOne({})

db.users.deleteMany({})

MongoDB -->> NoSQL 数据库:

插入<新增>文档:

插入一条文档:

向集合中插入一条新文档, 可以使用 insertOne() 方法, 传递一个文档对象,则可以新增一条数据:

复制代码
use xntest;
db.users.insertOne({name: "李四", age: "44"});

此时,集合中将会插入一条新的数据, 我们可以看下数据格式,长得和Json差不多,但是在mongo中, 这种类似Json 的数据, 被称之为 BSON

插入多条文档:

插入多条文档可以使用insertMany()方法,使用此方法,我们可以向mongo传递一个 列表,来实现批量插入, 不用频繁的像使用insertOne() 那样一条一条的插入了。

复制代码
db.users.drop()

document = [
{name: "xxxx",age:"33"},
{name: "xfewfgx",age:"33"},
{name: "fwawfger",age:"33"},
]

db.users.insertMany(document)
有序插入和无序插入:

当我们插入的数据很多的时候,有时候会不一定是哪个文档就出了问题, 但是我们又只想让没出问题的文档正常插入, 而出问题的文档,则就直接跳过不要了, 那么我们可以使用insertMany 的第二个参数, ordered, 如果将其指定为false, 则意味着无序插入, 如果某个文档出问题抛异常无法插入, 那么mongo会将其忽略掉, 然后重新排序,继续插入没有异常的文档。

复制代码
document = [
{_id: 1, name: "xxxx",age:"33"},
{_id: 1, name: "xfewfgx",age:"33"},
{_id: 2, name: "fwawfger",age:"33"},
]

db.users.insertMany(document, {ordered: false})

删除文档:

删除文档同样提供了 deleteOne() 和 deleteMany() 两个方法, 在删除某个文档的时候,同样需要传入一个筛选文档, 也就是,你要删除的文档。

复制代码
db.users.deleteMany({name: "xxxx"})
相关推荐
前路不黑暗@30 分钟前
Java:代码块
java·开发语言·经验分享·笔记·python·学习·学习方法
序属秋秋秋31 分钟前
《C++进阶之C++11》【可变参数模板 + emplace接口 + 新的类功能】
c++·笔记·学习·c++11·可变参数模板·emplace系列接口
Dovis(誓平步青云)1 小时前
《Linux 构建工具核心:make 命令、进度条、Gitee》
linux·运维·学习
XH1.4 小时前
学习HAL库STM32F103C8T6(SPI、门禁密码实验)
stm32·嵌入式硬件·学习
Da Da 泓7 小时前
LinkedList模拟实现
java·开发语言·数据结构·学习·算法
Larry_Yanan8 小时前
QML学习笔记(十五)QML的信号处理器(MouseArea)
c++·笔记·qt·学习·ui
Larry_Yanan10 小时前
QML学习笔记(十七)QML的属性变更信号
javascript·c++·笔记·qt·学习·ui
eqwaak010 小时前
Flask实战指南:从基础到高阶的完整开发流程
开发语言·后端·python·学习·flask
GilgameshJSS10 小时前
STM32H743-ARM例程9-IWDG看门狗
c语言·arm开发·stm32·单片机·嵌入式硬件·学习
金仓数据库10 小时前
平替MongoDB | 金仓多模数据库助力电子证照国产化实践
数据库·mongodb