【数据库】MongoDB

文章目录

    • @[toc]
      • 数据库操作
        • 查询数据库
        • 切换数据库
        • 查询当前数据库
        • 删除数据库
        • 查询数据库版本
      • 数据集合操作
        • 创建数据集合
        • 查询数据集合
        • 删除数据集合
      • 数据插入
        • 插入id重复的数据
      • 数据更新
        • 数据更新一条
          • 丢失其他字段
          • 保留其他字段
        • 数据批量更新
      • 数据删除
        • 数据删除一条
        • 数据批量删除
      • 数据查询
        • 创建数据集合
        • 数据查询一条
        • 查询格式化输出
        • 运算符
          • 比较运算符
          • 范围运算符
          • 逻辑运算符
        • 正则表达式查询
        • 分页
          • 查询前两条数据
          • 略过前两条数据
        • 自定义查询
        • 投影
        • 排序
        • 统计
        • 去重
        • 聚合操作
          • $group
            • 按指定字段分组
            • 不进行分组
          • $project
            • 投影
            • 别名
          • $match
          • $sort
          • $limit
          • $skip

因上努力

个人主页:丷从心·

系列专栏:MongoDB

学习指南:数据库

果上随缘


数据库操作

查询数据库
show dbs
切换数据库
  • MongoDB中无需手动创建数据库,当切换到一个不存在的数据库时,会自动创建一个数据库
use student_info
查询当前数据库
db
删除数据库
use student_infodb.dropDatabase()
查询数据库版本
db.version()

数据集合操作

创建数据集合
db.createCollection('class_1')
  • 也可以不用手动创建数据集合,当使用一个不存在的数据集合时,会自动创建一个数据集合
查询数据集合
show collections
show tables
删除数据集合
db.class_1.drop()

数据插入

use student_infodb.class_1.insertOne({'name': 'follow__my_heart', 'age': 22})
  • 数据查询
db.class_1.find()
插入id重复的数据
db.class_1.insertOne({_id: 10010, 'name': 'follow__my_heart', 'age': 22})db.class_1.save({_id: 10010, 'name': 'follow__my_heart', 'age': 18})

数据更新

数据更新一条
丢失其他字段
db.class_1.update({'name': 'follow__my_heart'}, {'name': 'follow__your_heart'})
保留其他字段
db.class_1.update({'name': 'follow__my_heart'}, {$set: {'name': 'follow__your_heart'}})
数据批量更新
db.class_1.update({'name': 'follow__my_heart'}, {$set: {'name': 'follow__your_heart'}}, {multi: true})

数据删除

数据删除一条
db.class_1.remove({'name': 'follow__your_heart'}, {justOne: true})
数据批量删除
db.class_1.remove({'name': 'follow__my_heart'})

数据查询

创建数据集合
use book_managerdb.getCollection('person_info').insert({name: '郭靖',hometown: '蒙古',age: 20,gender: true
})
db.getCollection('person_info').insert({name: '黄蓉',hometown: '桃花岛',age: 18,gender: false
})
db.getCollection('person_info').insert({name: '华筝',hometown: '蒙古',age: 18,gender: false
})
db.getCollection('person_info').insert({name: '黄药师',hometown: '桃花岛',age: 40,gender: true
})
db.getCollection('person_info').insert({name: '段誉',hometown: '大理',age: 16,gender: true
})
db.getCollection('person_info').insert({name: '段王爷',hometown: '大理',age: 45,gender: true
})
db.getCollection('person_info').insert({name: '洪七公',hometown: '华山',age: 18,gender: true
})use book_shopdb.getCollection('product_info').insert({_id: 100,sku: 'abc123',description: 'Single line description'
})
db.getCollection('product_info').insert({_id: 101,sku: 'abc456',description: 'First line\nSecond line'
})
db.getCollection('product_info').insert({_id: 102,sku: 'abc789',description: 'Single line description'
})
db.getCollection('product_info').insert({_id: 103,sku: 'xyz123',description: 'Many lines description'
})
db.getCollection('product_info').insert({_id: 104,sku: 'xyz456',description: 'Many lines description'
})
数据查询一条
db.person_info.findOne({'age': 18})
查询格式化输出
  • 在终端中使用
db.person_info.find().pretty()
运算符
比较运算符
db.person_info.find({age: {$gte: 18}})
范围运算符
db.person_info.find({age: {$in: [18, 45]}})
逻辑运算符
db.person_info.find({$or: [{'age': 18}, {'hometown': '桃花岛'}]})
正则表达式查询
db.product_info.find({sku: /^abc/})
db.product_info.find({sku: {$regex: '^abc'}})
分页
查询前两条数据
db.product_info.find().limit(2)
略过前两条数据
db.product_info.find().skip(2)
自定义查询
db.person_info.find({$where: function () {return this.age <= 18;}
})
投影
db.person_info.find({age: {$gte: 18}}, {'name': 1, _id: 0})
排序
db.person_info.find().sort({'age': -1})
统计
db.person_info.count({'age': {$gte: 18}})
去重
db.person_info.distinct('hometown', {'age': {$gte: 18}})
聚合操作
$group
按指定字段分组
db.person_info.aggregate({$group: {_id: '$gender', count: {$sum: 1}, avg_age: {$avg: '$age'}}
})
  • {$sum: 1}中的1表示倍数
不进行分组
db.person_info.aggregate({$group: {_id: null, count: {$sum: 1}, avg_age: {$avg: '$age'}}
})
$project
投影
db.person_info.aggregate({$project: {_id: 0, name: 1, age: 1}
})
别名
db.person_info.aggregate({$group: {_id: '$gender', count: {$sum: 1}, avg_age: {$avg: '$age'}}},{$project: {"性别": '$_id', "人数": '$count', "平均年龄": '$avg_age', _id: 0}}
)
$match
db.person_info.aggregate({$match: {age: {$gt: 20}}},{$group: {_id: '$gender', count: {$sum: 1}}},{$project: {"性别": '$_id', "人数": '$count', _id: 0}}
)
$sort
db.person_info.aggregate({$group: {_id: '$gender', count: {$sum: 1}}},{$sort: {count: -1}}
)
$limit
db.person_info.aggregate({$limit: 2}
)
$skip
db.person_info.aggregate({$skip: 2}
)

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

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

相关文章

react项目如何引入字体文件

1.下载字体文件 常见的字体文件格式为 .ttf、.otf、.eot、.woff 和 .woff2 。 2.将下载的字体文件放入项目中 通常放在静态文件目录&#xff0c;例如 src/assets/fonts。 3.在css文件中声明字体 font-face {font-family: CustomFont;src: url(../assets/fonts/custom-font…

Python脚本实现PC端大麦网自动购票(Selenium自动化测试工具)

文章目录 Selenium 简介Selenium webdriver 文档chromedriver&#xff08;谷歌浏览器驱动&#xff09;chromedriver 下载配置环境变量 大麦网购票脚本网页 dom 元素 启用远程调试&#xff08;操作已打开的窗口&#xff09; Selenium 简介 Selenium 是一个用于自动化测试的工具…

如何查看自己的公网IP?

我们在网络中&#xff0c;每一个设备都被分配了一个唯一的IP地址&#xff0c;用以区分和识别其他设备。公网IP地址是指可被公众访问的IP&#xff0c;是因特网上的全球唯一标识。当我们需要查看自己的公网IP时&#xff0c;可以采取以下几种方式。 使用命令行查看公网IP 在Windo…

【转载】C#集成JWT快速入门

一、JWT基本概念 JSON Web Token&#xff08;JWT&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑的、自包含的方式&#xff0c;用于在双方之间安全地传输信息作为JSON对象。这些信息可以被验证、信任&#xff0c;因为它们是数字签名…

算法06链表

算法06链表 一、链表概述1.1概述1.2链表的组成部分&#xff1a;1.3链表的优缺点&#xff1a; 二、链表典例力扣707.设计链表难点分析&#xff1a;&#xff08;1&#xff09;MyLinkedList成员变量的确定&#xff1a;&#xff08;2&#xff09;初始化自定义链表&#xff1a;&…

06.JAVAEE之线程4

1.定时器 1.1 定时器是什么 定时器也是软件开发中的一个重要组件. 类似于一个 " 闹钟 ". 达到一个设定的时间之后 , 就执行某个指定好的代码. 约定一个时间,时间到达之后,执行某个代码逻辑, 定时器非常常见,尤其是在进行网络通信的时候, 需要有等待的最大时间&…

Python+Django+MySQL框架的搭建涉及多个步骤下面是一个详细的搭建流程

PythonDjangoMySQL框架的搭建涉及多个步骤&#xff0c;下面是一个详细的搭建流程&#xff1a; 一、安装和配置Python环境 安装Python&#xff1a;确保你的计算机上安装了合适版本的Python。Django框架通常要求Python 3.x版本。 二、安装Django 使用pip安装Django&#xff1…

【学习笔记】

如何保护软件模块的定义 将数据定义放在模块xx.c文件中&#xff0c;C库中结构体的封装方法 这种方式的前提是模块xx需要有动态内存分配&#xff0c;通过create的方式&#xff0c;生成变量&#xff1b; 通过结构体共用体的方式[忘记了是哪个视频里看到] 利用的是共用体的思路…

孩子手机成瘾怎么办?教你几个技巧

现在科技是越来越发达了&#xff0c;手机能够给人们带来很多便利&#xff0c;孩子也可以通过手机了解到世界的变化。所以&#xff0c;父母可能在孩子很小的时候&#xff0c;就给孩子配备了一台手机&#xff0c;这就导致一些不好的后果。 1、倾听孩子的心声&#xff0c;给孩子高…

Linux之线程管理

目录 第1关&#xff1a;创建线程 任务描述 相关知识 使用pthread_create函数创建线程 编程要求 答案&#xff1a; 第2关&#xff1a;线程挂起 任务描述 相关知识 使用pthread_join挂起线程 编程要求 答案&#xff1a; 第3关&#xff1a;线程终止 任务描述 相关知识 使用pthread…

18种WEB常见漏洞:揭秘网络安全的薄弱点

输入验证漏洞: 认证和会话管理漏洞: 安全配置错误: 其他漏洞: 防范措施: Web 应用程序是现代互联网的核心&#xff0c;但它们也容易受到各种安全漏洞的影响。了解常见的 Web 漏洞类型&#xff0c;对于开发人员、安全测试人员和普通用户都至关重要。以下将介绍 18 种常见的 …

MySQL—MySQL的存储引擎之InnoDB

MySQL—MySQL的存储引擎之InnoDB 存储引擎及种类 存储引擎说明MyISAM高速引擎&#xff0c;拥有较高的插入&#xff0c;查询速度&#xff0c;但不支持事务InnoDB5.5版本后MySQL的默认数据库存储引擎&#xff0c;支持事务和行级锁&#xff0c;比MyISAM处理速度稍慢ISAMMyISAM的…

Android Studio查看viewtree

前言&#xff1a;之前开发过程一直看的是手机上开发者选项中的显示布局边界&#xff0c;开关状态需要手动来回切换&#xff0c;今天偶然在Android Studio中弄出了布局树觉得挺方便的。

某人的系统四分法(管理+ 规则+应用+对接)

管理 规则应用对接&#xff09; 目录概述需求&#xff1a; 1.管理 规则应用对接设计思路实现思路分析1.管理系统功能2.规则系统3.应用系统 &#xff08;主要是指业务系统&#xff09;4.系统对接&#xff08;本质上是消息&#xff09; 拓展实现 参考资料和推荐阅读 Survive by d…

JPEG图像常用加密算法简介

JPEG图像加密算法 目前&#xff0c;JPEG图像加密算法可以分成异或加密、置乱加密和置乱与异或组合加密。下面对这三种加密方式进行阐述。 (1) 异或加密 文献[1]提出了一种基于异或加密的JPEG图像的RDH-EI方案。该算法通过对AC系数的ACA和图像的量化表进行流密码异或&#xf…

代码随想录训练营Day 33|Python|Leetcode|● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯

理论基础 动态规划五步曲 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 509. 斐波那契数 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始…

vue3——笔记2(计算属性,类与样式绑定)

计算属性 在 Vue3 中&#xff0c;计算属性的用法和 Vue2 基本上是一样的&#xff0c;但是在性能上有了一些改进。Vue3 中计算属性是通过computed函数来创建的&#xff0c;计算属性的值会在相关依赖发生改变时自动更新。与 Vue2 相比&#xff0c;Vue3 的计算属性在一些场景下会…

某翻译平台翻译接口逆向之webpack学习

逆向网址 aHR0cHM6Ly9mYW55aS55b3VkYW8uY29tLw 逆向链接 aHR0cHM6Ly9mYW55aS55b3VkYW8uY29tLyMv 逆向接口 aHR0cHM6Ly9kaWN0LnlvdWRhby5jb20vd2VidHJhbnNsYXRl 逆向过程 请求方式 POST 逆向参数 sign c168e4cb76169e90f82d28118dbd24d2 接口请求结果解密 过程分析 根据XHR…

大数据第七天

文章目录 吐槽一下这个是怎么需要真的这么大吗? 内核错误内核软死锁&#xff08;soft lockup&#xff09;我这个cpu很高吗?大模型都说了不超过80就行了 FinBi安装FinBI下载链接安装时间比较长 吐槽一下 dbeaver 查询hive 数据信息是真的慢&#xff0c;没有一点快的方式&…

【优秀AI项目】每日跟踪 OpenVoice ,AI快站,OpenVoice

持续更新好玩的开源AI项目或AI商业应用体验 一起来玩转AI&#xff01;&#xff01; 1 huggingface 国内镜像站&#xff1a;AI 快站 HUggingface被墙了&#xff0c;emmmmm 所以我之前玩模型的一大感觉就是 下载什么模型之类的太难受了&#xff01;服了 看到一个镜像站——…