《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={name: "张三"}, update={$set: {name: "李四"}})

删除一条或者多条文档:

 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"})

更新文档:

更新文档可以使用, updateOne, updateMany, 和 replaceOne.

updateOne, updateMany 第一个参数同样需要传入一个筛选条件, 而第二个参数,则是要变更的文档。 replaceOne 也是同样, 唯一不同的是, replaceOne, 第二个传递的文档参数,会将当前筛选出的文档给整个替换掉。

更新运算符:

$set 用来设置一个字段的值, 如果被设置的字段不存在,则创建,假如我们有一条文档:

{
    "_id": ObjectId("66fd5e7d812d7c3beb09b601"),
    "name": "zhangsan",
    "age": 111,
    "address": "zhegnzhou"
}

例如,我们想更新这个文档的age, 将其更新成33:

db.users.updateOne({name: "zhangsan"},{"$set": {"age": 33}})

 如果想要删除某个字段, 可以使用unset来实现, 例如,我们想删除 address

db.users.updateOne({name: "zhangsan"}, {"$unset": {"address": "zhengzhou"}})

我们还可以使用 $set 来修改或创建一个内嵌文档。

例如我们有这样一个文档:

{
    "_id": ObjectId("66fd61a3812d7c3beb09b602"),
    "name": "lisi",
    "infos": {
        "address": "郑州",
        "age": 11
    }
}

如果我们想修改这个内嵌文档,我们该如何做呢:

db.users.updateOne({name: "lisi"}, {"$set": {"infos.age": 111}})

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/437686.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

离子注入后如何去胶?

知识星球里的学员问&#xff1a;离子注入后的光刻胶很难除&#xff0c;有什么好的方法吗&#xff1f;涉及到的原理可以讲一讲。 IC制程中离子注入的作用&#xff1f; 离子注入主要是形成阱&#xff08;WELL&#xff09;、低掺杂区&#xff08;LDD&#xff09;、以及重掺杂区&…

初识TCP/IP协议

回顾上文 来回顾一下TCP协议的特性&#xff0c;有一道比较经典的题&#xff1a;如何使用UDP实现可靠传输&#xff0c;通过应用程序的代码&#xff0c;完成可靠传输的过程&#xff1f; 原则&#xff0c;TCO有啥就吹啥&#xff0c;引入滑动窗口&#xff0c;引入流量控制&#x…

想学道家智慧,误打误撞被儒家引导读《道德经》?这是怎么回事?

想学道家智慧&#xff0c;却误打误撞被儒家引导读《道德经》&#xff1f;这是怎么回事&#xff1f; 原来&#xff0c;这其中的缘由可以追溯到汉代。董仲舒等人在整理文献时&#xff0c;对《老子》进行了修改和补充&#xff0c;形成了所谓的《道德经》。这一版本不仅颠覆了原本…

深入解析开源大模型的GPU资源需求与优化策略

随着大模型的火热很多项目中都使用到了开源大模型&#xff0c;这时候准确评估大模型的GPU资源非常重要&#xff0c;主要有下面几个方面 成本效率&#xff1a;GPU是昂贵的资源。高估内存需求可能导致在硬件上的不必要支出&#xff0c;而低估则可能导致系统故障或性能下降。 性…

管理方法(12)-- 采购管理

采购人员不是在为公司讨价还价,而是在为顾客讨价还价,我们应该为顾客争取最低的价钱。-----山姆 沃尔顿 沃尔玛的创始人。 1. 采购的定义和原则 5R原则:适时(Right Time)、适质(Right Quality)、适量(Right Quantity)、适价(Right Price)、适地(Right Place)。…

Hadoop FileSystem Shell 常用操作命令

提示&#xff1a;本文章只总结一下常用的哈&#xff0c;详细的命令大家可以移步官方的文档&#xff08;链接贴在下面了哈&#x1f923;&#xff09;— HDFS官方命令手册链接。 目录 1. cat 命令&#xff1a;查看 HDFS 文件内容2. put 命令&#xff1a;将本地文件上传到 HDFS3.…

每日OJ题_牛客_JOR26最长回文子串_C++_Java

目录 牛客_OR26最长回文子串 题目解析 C代码1 C代码2 Java代码 牛客_OR26最长回文子串 最长回文子串_牛客题霸_牛客网 描述&#xff1a; 对于长度为n的一个字符串A&#xff08;仅包含数字&#xff0c;大小写英文字母&#xff09;&#xff0c;请设计一个高效算法&#xf…

Golang | Leetcode Golang题解之第450题删除二叉搜索树的节点

题目&#xff1a; 题解&#xff1a; func deleteNode(root *TreeNode, key int) *TreeNode {var cur, curParent *TreeNode root, nilfor cur ! nil && cur.Val ! key {curParent curif cur.Val > key {cur cur.Left} else {cur cur.Right}}if cur nil {retur…

Android SQLite的基本使用、生成Excel文件保存到本地

1. Android SQLite的基本使用 1.1. SQLiteOpenHelper Android 底层已经通过一个SQLiteOpenHelper的抽象类将数据库的创建&#xff0c;以及修改&#xff0c;更新等都放在了里面。 要使用它必须实现它的OnCreate(SQLiteDatabase db)&#xff0c;onUpgrade(SQLiteDatabase db, int…

VMware ESXi 6.7U3u macOS Unlocker 集成驱动版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 6.7U3u macOS Unlocker & OEM BIOS 2.7 集成 Realtek 网卡驱动和 NVMe 驱动 (集成驱动版) UI fix 此版本解决的问题&#xff1a;VMware Host Client 无法将现有虚拟磁盘 (VMDK) 附加到虚拟机 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-…

JVM和GC监控技术

一、监控技术简介 JVM是什么&#xff1f;项目里面有JVM吗&#xff1f;JVM跟Tomcat有什么关系&#xff1f;为什么需要去分析JVM&#xff1f; 1. JVM(全称&#xff1a;Java Virtual Machine)&#xff0c;Java虚拟机 是Java程序运行的环境&#xff0c;它是一个虚构的计算机&…

热网无线监测系统/config.aspx接口存在反射性XSS漏洞

漏洞描述 热网无线监测系统/config.aspx接口存在反射性XSS漏洞 漏洞复现 FOFA body"Downloads/HDPrintInstall.rar" || body"skins/login/images/btn_login.jpg" POC IP/config.aspx POC <script>alert(1)</script> 点击确认成功弹窗1

目前最好用的爬虫软件是那个?

作为一名数据工程师&#xff0c;三天两头要采集数据&#xff0c;用过十几种爬虫软件&#xff0c;也用过Python爬虫库&#xff0c;还是建议新手使用现成的软件比较方便。 这里推荐3款不错的自动化爬虫工具&#xff0c;八爪鱼、亮数据、Web Scraper 1. 八爪鱼爬虫 八爪鱼爬虫是一…

【Linux庖丁解牛】—Linux基本指令(中)!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a; Linux庖丁解牛 &#x1f516;克心守己&#xff0c;律己则安 目录 1、rmdir与rm指令 2、man指令 3、cp指令 4、mv指令 5、cat与tac指令 6、重定向 7、more指令 8、…

OpenCV第十二章——人脸识别

1.人脸跟踪 1.1 级联分类器 OpenCV中的级联分类器是一种基于AdaBoost算法的多级分类器&#xff0c;主要用于在图像中检测目标对象。以下是对其简单而全面的解释&#xff1a; 一、基本概念 级联分类器&#xff1a;是一种由多个简单分类器&#xff08;弱分类器&#xff09;级联组…

Harmony商城项目

目录&#xff1a; 1、启动项目看效果图2、首页和购物车代码分析2.1、首页代码分析2.2、女装页面代码分析2.3、购物车页面代码分析2.4、购物车结算代码 3、个人中心代码分析 1、启动项目看效果图 2、首页和购物车代码分析 2.1、首页代码分析 import CommonConstants from ../co…

海外合规|新加坡推出智慧国2.0计划 设新网络安全与保障机构

智慧国2.0计划&#xff1a;政府将成立新机构杜绝网络伤害和援助受害者。政府将成立新机构&#xff0c;并制定新法令&#xff0c;以杜绝网络伤害行为和为受害者提供更多援助与保障。新加坡总理兼财政部长黄循财星期二&#xff08;10月1日&#xff09;在推介晚宴上&#xff0c;宣…

SOCKS5代理和HTTP代理哪个快?深度解析两者的速度差异

在现代互联网环境中&#xff0c;使用代理IP已经成为了许多人日常生活和工作的必备工具。无论是为了保护隐私&#xff0c;还是为了访问某些特定资源&#xff0c;代理IP都扮演着重要的角色。今天&#xff0c;我们就来聊聊SOCKS5代理和HTTP代理&#xff0c;看看这两者到底哪个更快…

9. 正则表达式

编程工具和技术是以一种混乱、进化的方式生存和传播的。获胜的并不总是最好或最杰出的工具&#xff0c;而是那些在合适的利基市场中发挥足够好的功能&#xff0c;或者恰好与另一项成功的技术相结合的工具。 在本章中&#xff0c;我将讨论这样一种工具--正则表达式。正则表达式是…

【Android 14源码分析】Activity启动流程-3

忽然有一天&#xff0c;我想要做一件事&#xff1a;去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…