非关系型数据库MongoDB的基础操作

news2024/9/20 12:32:50

MongoDB优点:

1.MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。

2.如果负载的增加,它可以分布在计算机网络中的其他节点上这就是所 谓的分片。

3. MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++, PHP,C#等多种语言。

4.你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的 扩展性。

MongoDB 解决Mysql 的“三高”问题:

1.对数据库高并发写入需求

2. 对海量数据高效率存储访问需求

3. 对数据库高扩展和高可用的需求

MongoDB 实际应用:

1. 社交场景,比如朋友圈,附近的人的地点的存储

2. 游戏场景,比如用户当前装备,得分等

3. 物流场景,比如快递的位置,状态,途径

4. 视频场景,比如直播中的点赞数和互动留言等

MongoDB的缺点:

1. MongoDB 不支持事务

2. MongoDB 不能进行多表联查

// 查看磁盘上的所有库

show dbs;

//创建、使用库

use 小汉堡;

//查看当前库对象

db;

//删除库

db.dropDatabase();

//当前库中创建集合、表

db.createCollection('student');

//查看当前库中的集合、表

show tables; 或者 show collections;

//删除集合

db.student.drop();

//插入数据

db.student.insert({stuname:'张三',age:16});

db.student.insert(

{             shuai:true,

              money:true,

              gf:[{stuname:'小红'},{stuname:'小黄'},{stuname:'小孩' }]

});

//删除数据

//全部删除

db.student.remove({});

//带条件的删除

//delete from student where stuname='张三';

db.student.remove({stuname:'张三' })

//注意:符合条件的全部删掉 有几个删几个

db.student.remove({age:16});

//删除主键编号较小一条数据

db.student.remove({age:16},{justOne:true});

//修改

更新数据 语法: db.集合名.update({查询条件},{$set:{更新内容}}, { upsert: , multi: , } )

upsert: 默认为false ,如果查询不到数据,则把跟新输入插入

 multi:默认为false,默认只改一条,true,更改多条

// 如果有多个结果符合条件,只改遇到的第一个(_id最小的那个)

db.student.update(

{stuname:'赵六'},

{$set:{age:18}}

);

//匹配到多个,并且修改多个

db.student.update(

{stuname:'赵六'},

{$set:{age:18}},

{multi:true}

);

// {upsert:true}把没匹配到的数据 作为新增的值添加到mongo中

db.student.update(

{stuname:'小张'},

{$set:{age:11}},

{upsert:true}

);

//在某一列上在原有的值基础之上进行递增1效果可以用$inc运算符来实现 数值改变(既能加又能减)

db.student.update(

{stuname:'小张'},{$inc:{age:100}}

)

//查询

//全查

db.student.find();

//根据条件查询

db.student.find({stuname:'赵六' });

//age小于20岁的人

db.student.find({age:{$lt:20}});

//age大于等于18并且age小于等于60

db.student.find({age:{$gte:18,$lte:60}});

//age大于等于18或者age小于等于120

db.student.find({$or:[{age:{$gte:18}},{age:{$lte:60}},]});

//模糊查询 

db.student.find({stuname:/六/ });

db.student.find({stuname:/^六/ });

db.student.find({stuname:/六$/ });

//分页   (页码-1)*步长

db.student.find().limit(1).skip((3-1)*1);

//统计

db.student.find({stuname:'赵六' }).count();

//排序 1:升序 -1:降序

db.student.find().sort({age:-1});

//索引

db.student.getIndexes();

//创建索引

//建一个升序的索引

db.student.createIndex({age:1});

//降序

db.student.createIndex({age:-1});

//删除索引

db.student.dropIndex({age:1});

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

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

相关文章

昇思25天学习打卡营第11天|xiaoyushao

今天分享ResNet50迁移学习。 在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提…

git 推送时出现错误 Locking support detected on remote “origin“

背景:代码托管是局域网搭建的gitlab 按照提示配置 lfs.locksverify true 还是没有用。 网上搜索了一番,其中有人提到可能时服务器磁盘满了,连到服务器上 df -h 查看, 发现根目录已经写满了: 使用命令行: d…

手持式无人机报警器技术详解

随着无人机技术的迅速发展和普及,无人机在各个领域的应用越来越广泛。然而,无人机的不当使用也可能带来一系列安全隐患,如侵犯隐私、干扰航空安全等。因此,手持式无人机报警器应运而生,成为一种有效的无人机监测和报警…

SAPUI5基础知识21 - 碎片回调函数(Fragments Callbacks)

1. 背景 在上一篇博客中,我们通过创建fragment的方式,实现了一个可以复用的对话框,并将其集成在我们的应用程序中。 在本篇博客中,让我们进一步增强一下这个程序,为弹出的对话框添加一个按钮,以实现对话框…

使用eclipse在新建的java项目中编辑xml文件时Unhandled event loop exception No more handles

处理方法:更换xml编辑器 Window ——》Preferences ——》General ——》Editors ——》File Associations 如果File types里面没有*.xml,则点击Add进行新增 选中*.xml,然后在Associated editors 选中想用的编辑器,设置为defaul…

pandas安装以及导入CSV

安装pandas pip install pandas速度慢可以切换国内镜像源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas执行导入csv操作 import pandas as pd# 读取csv文件 data pd.read_csv(yourPath)输入data查看数据 导入成功!

【Redis 初阶】初识 Redis

一、了解 Redis Redis 官网:Redis - The Real-time Data Platform Redis 是一种基于键值对(key-value)的 NoSQL 数据库。与很多键值对数据库不同的是,Redis 中的 key 都是 string(字符串),值&a…

手写模拟Spring底层原理-简易实现版

通过手写模拟Spring 了解Spring的底层源码启动过程了解BeanDefinition、BeanPostProcessor的概念了解Spring解析配置类等底层源码工作流程了解依赖注入,Aware回调等底层源码工作流程了解Spring AOP的底层源码工作流程 这里实现一个简化版的 Spring 框架的核心功能&a…

2024源代码加密软件评测丨五款企业源代码加密软件推荐

“李明,最近黑客攻击事件频发,咱们的代码库安全真的让人捏把汗啊。”张伟眉头紧锁,语气中带着几分忧虑。 “是啊,我听说现在市面上有不少源代码加密软件,但种类繁多,不知道该选哪个好。”李明回应道&#…

cocos creator 3学习记录01——如何替换图片

一、动态加载本地图片 1、通过将图片关联到CCClass属性上来进行代码切换。 1、这种方法,需要提前在脚本文件中声明好代表图片的CCClass属性。 2、然后拖动图片资源,到脚本内声明好的属性上以进行关联。 3、然后通过程序,来进行切换展示。…

Python | TypeError: ‘module’ object is not callable

Python | TypeError: ‘module’ object is not callable 在Python编程中,遇到“TypeError: ‘module’ object is not callable”这类错误通常表明你尝试像函数一样调用了一个模块。这种错误通常是由于导入模块时的疏忽或误解导致的。本文将深入探讨此错误的根源&…

JVM—HotSpot虚拟机对象探秘

1、对象的创建 对象只是普通对象,不包括数组和Class对象 类加载检查:当虚拟机遇到字节码New指令时,先检查这个指令的参数是否可以在常量池定位到一个类的符号引用,并且加载这个符号引用代表的类是否被加载、解析、验证、初始化过。…

【Redis】Redis的概念 | 特性 | 应用场景 | 安装 | 客户端

文章目录 Redis一、认识Redis二、Redis的特性三、Redis的应用场景四、安装Redis五、Redis的客户端 Redis 一、认识Redis Redis是一个开源的,在内存中存储数据。在分布式系统中更有优势。如果是单机环境下,直接通过变量存储数据比用Redis更有优势。在分布…

通信系统的均衡技术

1、摘要 在通信系统中,信号从发送端发出,经过信道,到达接收端,而在传输的过程中,信号会发生失真,产生失真的原因有很多,包括阻抗不匹配,干扰等。为了优化信号质量,需要进…

推动智慧交通建设,边缘计算赋能交通信号灯数据处理与决策能力

随着智慧城市建设的快速发展,智慧交通已成为城市发展的重要组成项目。智慧交通旨在通过大数据、人工智能、物联网等先进技术,实现交通系统的全面感知、智能分析、主动服务和协同管理。边缘计算在交通信号灯物联网应用中展现了交通信号灯数据处理与决策能…

C# 设计倒计时器、串口助手开发

文章目录 1. 实现一个简单的倒计时器开始、暂停2. 串口助手开发 1. 实现一个简单的倒计时器开始、暂停 namespace Timer {public partial class Form1 : Form{int count;//用于定时器计数int time;//存储设定的定时值bool parse false;//控制暂停计时public Form1(){Initiali…

Apollo使用(1):介绍、QuickStart

一、Apollo应用 1、介绍 项目地址:https://github.com/ctripcorp/apollo使用手册:https://github.com/ctripcorp/apollo/wiki Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集…

Python如何快速定位最慢的代码?优雅了~

编写Python代码时,我们常常会遇到性能瓶颈,这不仅影响程序的执行效率,还可能导致用户体验下降。那么,如何快速定位代码中最慢的部分,成为每个开发者必须掌握的技能。 如何快速定位 Python 代码中的性能瓶颈&#xff1…

优雅单片机之STM32C8T6------蓝牙模块基本设置(2)

0,C8T6系列 1,入门之程序的下载 2,蓝牙模块基本设置(本文) 2,蓝牙模块基本应用 3,蓝牙小车(待定) 一,蓝牙模块基础设置 需要硬件:电脑&#x…

【Linux】进程间通信(2):命名管道

目录 一、命名管道的概念 二、命名管道与匿名管道的区别 1、常规区别 2、读写阻塞的区别 3、存储位置和数据处理的区别 匿名管道 命名管道 三、命名管道的创建与使用 1、在命令行中命名管道的创建与使用 2、在编程中命名管道的创建与使用 2、示例代码 四、命名管道的…