MongoDB 命令行操作

news2024/12/23 22:31:30

         通过 MongoDB 数据库安装详细教程 安装完成了MongoDB,MySQL数据库是通过sql命令操作数据,而MongoDB是通过类Javascript函数的查询方式进行数据库的操作,在使用MongoDB来操作数据库之前先来简单的了解MongoDB操作注意:

MongoDB数据库命名规则

  • 不能是空字符串 ;
  • 不能含有 /  \  ?  $  空格  空字符 ,基本上只能使用Ascll码中字母和数字 ;
  • 区分大小写,建立全部小写 ;
  • 名称最多为64个字节 ;
  • 不能使用保留的数据库名: admin ,local ,config

        在安装完成MongoDB数据库时,MongoDB中就有保留了如下这些数据库,这些数据库在你安装完成后就已经存在了的;

库名作用
admin权限数据库,添加用户到该数据库中,该用户会自动继承数据库的所有权限
local数据库中的数据永远不会被复制
config分片时,config数据库在内容使用,保存分子信息
test默认数据库,可以用来做各种测试等

        在进行下面操作之前确定已经安装且已经配置好环境变量以及MongoDB服务已经启动运行;

查看数据库

        通过如下命令就可以查看在你电脑存在的Mongodb数据库了;

show dbs;

 创建数据库

        MongoDB使用use命令创建数据库,若数据库不存在,MongoDB 会在第一次使用该数据库时创建数据库。若数据库已经存在则连接数据库,然后可以在该数据库进行各种操作。

        创建一个名为syan的数据库;

use syan;
db;

 创建集合

        集合是一组文档,是无模式的,集合名称要求符合UTF-8标准字符串,同时还有遵循

  • 集合名不能是空字符串
  • 不能含有空字符 \0
  • 不能以 'system.' 开头,这是系统集合保留的前缀
  • 集合名不能含保留字符 $ 

        MongoDB 创建集合就相当于M有SQL去创建一个表table,这样就好理解一些;

MongoDB 创建集合有两种方式 显式  隐式 ;

显示创建

        通过db.createCollection()方法实现,格式为db.createCollection(name, [options]),name是创建集合名称,options是可选,指定内存大小和索引等;

db.createCollection('sName');


 隐式创建

        隐式创建则是通过添加数据自动创建的;如果不理解的话,先放一放,看过后面再回头看就一目了然;


查询集合

        MySQL数据库通过SHOW TABLES 可以列出所有表,MongoDB数据库则是通过show collections 查询所有集合;

show collections;

再来创建一个集合查询列表;

查看集合

        通过 getCollectionNames() 方法查看当前数据库下的所有集合,格式如下:

db.getCollectionNames();

        show collections 列出所有的集合,而getCollectionNames() 是以数组的形式返回所有集合;

修改集合名称 

        使用 renamecollection() 方法可对集合进行重新命名,将Age集合名改为sAge;

db.集合名.renameCollection('新集合名');

再来创建一个集合;

删除集合

        删除集合可以通过drop()方法;格式如下: 

db.集合名.drop();

下面来删除sSex这个集合:


下面来进行在集合中进行数据的增删改查;在MySQL数据中增删查改的是称为记录,MongoDB中则是文档,文档是MongoDB中存储的基本单位,是一组有序的键值对集合;文档中存储的文档键的格式必须是符合 UTF-8 标准的字符串,同时还要注意不能含有空字符(\0),该字符表示键的结束,还不能含 "." 和 "$" (已保留,仅特定情况使用);

增 

        通过 save() 方法可以添加数据,格式如下:

db.集合.save();

        通过 insert() 方法可以添加数据,格式如下:

db.集合.insert();

         通过 insertOne() 可以添加一条数据; 

        通过 insertMany() 方法可以添加多条数据,insert()方法也同样可以添加多条数据;格式:

db.集合名.insertMany();

        使用insert() 来添加多条数据;如下:

         使用 save() 方法也是同样可以添加多条数据的;

        下面来查询数据,通过上面的操作,大概已经知道了可以使用 find() 方法来查询了,格式:

db.集合.find([query, projection])

[ ] 中的是可选项,query为设置查询操作符指定查询条件,而projection表示使用投影操作符指定返回的字段,若忽略此选项则返回所有字段。


        使用find() 方法以非结构化的方式来显示所要查询的文档;

        查询集合中的所有文档时,为了使显示的结果更为直观,可使用 pretty() 方法以格式化的方式来显示所有文档,格式如下:

db.集合.find().pretty();

        通过 findOne() 方法可以查询一条数据内容;格式如下:

db.集合.findOne();

条件查询 

        下面先来给集合sAge添加一些数据;sAge主要收集成员在这些年龄段会读哪一类别的书籍,类别以编号代替;通过刚刚讲过的添加数据往sAge添加一些数据:

现在要来查询读类别编号为1001 (rbook:1001) 的成员信息;如下命令:

db.sAge.find({rbook:1}).pretty();


MongoDB 支持RDBMS 的条件操作符:

>$gt
<$lt  (小写L)
>=$gte
<=$lte
!=$ne
与 - anddb.test.find( {name : "LIN", age: 18} )
或 - ordb.test.find( $or:[ {name : "YAN", age : 18} ] )

 下面进一步的使用这些条件操作符查询:

  • 查询 age > 18 的数据信息;
db.sAge.find({age:{$gt:18}});

 查询 age < 19 的数据信息;

db.sAge.find({age:{$lt:19}});

 查询 age >= 19 的数据信息;

db.sAge.find({age:{$gte:19}});

  查询 age <= 19 的数据信息;

db.sAge.find({age:{$lte:19}});

查询 age = 18 和 rbook = 1001 的数据信息;

db.sAge.find({age:18,rbook:1001}).pretty();

查询age >=18 和 rbook = 1002 或者 age <= 19 和 rbook = 1002 的数据信息;

db.sAge.find({$or:[{age:{gte:18},rbook:1001},{age:{lte:19},rbook:1002}]});    

        以上就是关于查询的部分,搭配操作符进行结合使用;


        MongoDB数据库中可以通过使用 update() 和 save() 方法来进行数据的修改集合中的文档,在前面通过save() 方法添加数据和添加多条数据;下面来分别使用这两个方法:

update() 方法格式如下:

db.集合.update(
    <query>,    // 参数设置查询条件。  
    <update>    // 为更新操作符。
)

<update>
{$set: {//更新字段}}

先来更新一个字段;sAge 中 name: <LIN> 的 <age> : 18 ——  更改为 <age> : 20 ;

db.sAge.update(
{name:'LIN'},
{$set:{age:20}}
);

         如要多个字段内容,同样的只需要在$set: 中编写要修改的字段内容即可;现在来修改一下信息将<age>:18 ,<rbook>:1001 修改字段为 <age> : 19, <rbook>: 1004;

db.sAge.update(
{name:'XXM'},
{$set:{age:19,rbook:1004}}
);

         通过使用 save() 方法讲上面已被修改的数据再修改回来; 

         以上就是MongoDB数据库修改集合中的文档的内容了。

         MongoDB数据库中可以通过 remove() 方法 来删除集合中的文档;下面切换到sName集合然后来删除集合中一条name为HAN的文档数据:

db.集合.remove();

 下面来删除sAge集合中字段将 age > 19 的文档进行删除;

        通过使用 deleteOne() 方法可以删除一条文档;

db.集合.deleteOne();

        通过使用 deleteMany() 方法删除集合中多条文档,如果要删除所有文档可以使用以下命令:

db.集合.deleteMany({});

        同时也可以使用 deleteMany() 方法来删除多条数据;如下格式来测试一下:

db.集合.deleteMany({},{});

 下面来直接使用 deleteMany({}) 方法删除所有文档:

统计数据库信息 

        通过 stats() 命令可以进行统计数据库信息;

db.stats();

 删除数据库

         可以通过 dropDatabase() 方法来删除数据库;

db.dropDatabase();

        以上就是本篇的全部内容了,关于MongoDB数据库使用命令来操作,进一步的了解MongoDB 数据库 与 MySQL数据库 的区别,那么之后会通过 MongoDB 图形化工具来进一步的使用MongoDB 数据库,感谢大家的支持! 

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

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

相关文章

使用线性光耦合器的模拟隔离

介绍 模拟隔离仍然广泛应用于电机驱动、功率监测等&#xff0c;其中应用通常使用廉价的模拟电压控制来进行速度、强度或其他调整。 HCNR201/200模拟光耦合器通常被添加到&#xff0c;用于隔离应用电路的前端模块中的模拟信号。光耦合器将放置在模拟输入和A/D转换器之间&#…

C++list

1. list的介绍及使用 1.1 list的介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其…

外包出去找工作被歧视,投几个简历都说介意外包,不考虑外包。

说起外包这个话题&#xff0c;一直是职场的热门话题。 关于外包&#xff0c;最多被人讨论的就是歧视方面的。比如&#xff0c;关于门禁权限方面的歧视、关于语言交流上的歧视、关于福利上的歧视等等。 01 外包被歧视的情况确实存在 网传有一腾讯外包员工在脉脉上吐槽自己遭受…

python--内置高阶函数、异常处理;模块与包以及python基础部分的总结

文章目录一、内置高阶函数二、异常处理异常处理机制抛出异常三、模块与包python基础部分的总结一、sort()与sorted()函数的区别二、深拷贝和浅拷贝、is与四、基础部分的脑图总括一、内置高阶函数 map()函数 reduce()函数 filter()函数 sorted()函数 #排序 二、异常处理 Indent…

java基础巩固-宇宙第一AiYWM:为了维持生计,测试篇预热【单元测试、性能测试、灰度发布与回滚】~整起

单元测试【就像买保险&#xff0c;希望自己不要用上】是重构的保护网&#xff1a;单元测试可以为重构提供信心&#xff0c;降低重构的成本。我们要像重视生产代码那样&#xff0c;重视单元测试【元测试&#xff08;Unit Testing&#xff09;是针对程序模块&#xff08;软件设计…

协同过滤CF

算法提出 如果让推荐系统领域的从业者选出业界影响力最大、应用最广泛的模型&#xff0c;那么笔者认为90%的从业者会首选协同过滤。1992年, Xerox的研究中心开发了一种基于协同过滤的邮件筛选系统&#xff0c;用以过滤一些用户不感兴趣的无用邮件。2003 年&#xff0c;Amazon …

MySQL数据表的基础知识

目录 一、增 二、查 a、全列查询 b、指定列查询 c、查询字段为表达式 d、别名查询 e、对查询结果进行去重 f、排序 ​g、条件查询 三、改 四、删 以下操作均以student表为基础&#xff1a; 一、增 insert into 表名 values(...); 例如&#xff1a;新增张三同学的…

举个栗子!Tableau 技巧(247):用震波图(Seismogram)查看数据变化

震波图&#xff08;Seismogram&#xff09;是一种像地震波或声波的图表&#xff0c;通常用于表达数据的变化。乍一看&#xff0c;它有点像 蝴蝶图&#xff08;旋风图&#xff09;&#xff0c;数据都分布在轴的零点两侧&#xff0c;但其实两者完全不同。 如下震波图&#xff0c…

Stm32旧版库函数6——ov2640 串口显示图像 串口中断 使用旧版库 模拟IIC

/******************************************************************************* // // 使用单片机STM32F100C8T6 8 // 晶振&#xff1a;8.00M // 编译环境 Keil uVision4 // 在3.3V的供电环境下&#xff0c;就能运行 // 波特率 115200 // 使用&#xff1a;STM32F100C…

SpringCloud Config 分布式配置中心

分步式系统面临配置问题&#xff1a; 微服务意味着要将单体应用中的业务拆分成一个个子服务&#xff0c;每个服务的粒度相对较小&#xff0c;因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行&#xff0c;所以一套集中式的、动态的配置管理设施是必不…

浅谈电气火灾监控系统在煤矿高层公寓中的应用分析

摘要&#xff1a; 煤矿高层公寓做为人员高度密集场所&#xff0c;使用的电器种类繁多&#xff0c;一旦发生电气火灾事故&#xff0c; 其严重性和危害性远高于其它场所。文章通过对煤矿公寓电气线路火灾主要形式的分析&#xff0c;对电气火灾监 控系统在煤矿公寓电气火灾预防及…

NLG解码策略

NLG解码策略 自然语言生成&#xff08;Natural Language Generation&#xff0c;简称NLG&#xff09;&#xff0c;是自然语言处理领域的一个重要分支&#xff0c;在文本摘要生成任务中&#xff0c;另一个重要的分支是自然语言理解&#xff08;Natural Language Understanding&…

传奇GOM引擎版本架设

传奇GOM引擎版本架设 传奇GOM引擎版本我们架设游戏需要用到的工具&#xff1a; 版本&#xff08;游戏类型服务端&#xff09;、DBC2000&#xff08;游戏数据库&#xff09;、RAR&#xff08;解压工具&#xff09;、传奇客户端、服务器、网盘 先把这些架设工具准备好&#xff…

性能测试——

目录 测试的分类 性能测试的指标 性能测试需求分析 ​编辑 性能测试计划及方案 ​编辑​编辑 测试用例设计及执行 梳理系统架构 压力测试报告 测试的分类 性能测试的指标 性能测试需求分析 性能测试计划及方案 测试用例设计及执行 估算系统的qps要了解什么&#xff1a; 系…

Hot100-最小路径和

1 前言 1.1 题目描述 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 如下图所示&#xff1a; 输入&#xff1a;grid [[1,3,1],[1,5,1…

ConversionService转换服务使用

前言 在最近分析和写的SpringBoot源码分析(面试官&#xff1a;你说说Springboot的启动过程吧(5万字分析启动过程))中&#xff0c;给自己留了一个关于ConversionService的使用的作业&#xff0c;这不就来补作业了。 使用出处 这个转换服务我这里的例子很简单&#xff0c;就是…

计算机研究生就业方向之去大厂做架构师

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么&#xff0c;如果你只是转码&#xff0c;那么你不一定要考研&#xff0c;至少以下几个职位研究生是没有啥优势的&#xff1a; 1&#xff0c;软件测试工程师&#xff08;培训一下就行&#xff09; 2&#xff0c;前…

RocketMQ详解及开发用例

概念 Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件。 支持Broker和Consumer端消息过滤&#xff0c;支持发布订阅模型和点对点&#xff0c;支持拉pull和推push两种消息模式&#xff0c;单一队列百万消息、亿级消息堆积&#xff0c;支持单master节点&a…

力扣202.快乐数(java语言HashSet方法,类双指针方法)

前言&#xff1a;此题被分类到散列表算法题目中&#xff0c;但乍一看此题实在想不到如何去使用散列表&#xff0c;直到看了官方给的答案。。。。。。 题目描述&#xff1a; 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#…

C++ 基本语法

&#x1f4d2;博客主页&#xff1a; ​​开心档博客主页​​ &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐留言&#x1f4dd; &#x1f4cc;本文由开心档原创&#xff01; &#x1f4c6;51CTO首发时间&#xff1a;&#x1f334;2022年12月12日&#x1f334; ✉…