MongoDB的基本操作介绍、数据库/表的创建和删除、数据的查询

在这里插入图片描述


MongoDB的基本操作介绍

一、基础操作

1.1 连接数据库

终端输入mongo命令,输出类似如下内容就证明已经和数据库建立了连接。

PS E:\Code> mongo
MongoDB shell version v5.0.8
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ebcefcb0-f345-460d-94fd-0ea7cf525c6f") }
MongoDB server version: 5.0.8
================
Warning: the "mongo" shell has been superseded by "mongosh",which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions,see
https://docs.mongodb.com/mongodb-shell/install/
================
---
The server generated these startup warnings when booting:
        2022-07-16T07:08:30.841+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
        Enable MongoDB's free cloud-based monitoring service,which will then receive and display
        metrics about your deployment (disk utilization,CPU,operation statistics,etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring,run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder,run the following command: db.disableFreeMonitoring()
---
>

1.2 查看数据库

使用show dbs可以查看当前MongoDB有哪些数据库。

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

新安装的MongoDB默认存在三个数据库,即adminconfiglocal,保持不变即可,不要操作这三个数据库。

1.3 创建数据库

实际上,MongoDB的数据库是不需要专门去创建的,我们可以直接使用一个不存在的数据库,这样就会自动创建这个不存在的数据库。这样,创建一个数据库就需要两步:

  1. use db_name,表明要创建的数据库名称db_name
  2. db.tb_name.insert(),向表tb_name中插入一条数据;

这样就创建了一个数据库,同时,顺带的也就创建了一个名为tb_name的表。

举个例子,我们现在需要创建一个名为db_ahoh的数据库,并向tb_user表中插入数据,需要执行以下操作:

> use db_ahoh
switched to db db_ahoh
> db.tb_user.insert({username:'张三',age:18})
WriteResult({ "nInserted" : 1 })
>

这样我们就创建了一个名为db_ahoh的数据库,同时还有一个名为tb_user的表(集合)。

此时,我们可以使用show dbs命令查看数据库的状态:

> show dbs
admin    0.000GB
config   0.000GB
db_ahoh  0.000GB   (*)
local    0.000GB

此时,数据库db_ahoh已经创建完成了。

1.4 查看数据表(集合)

如果我们想要查看一个数据库中有哪些表,需要使用show collections命令。

在此之前,需要先用use db_name命令指定要查看的表。

举个例子,我们要查看数据库db_ahoh中表的数量,操作如下:

> use db_ahoh          # 如果上面用过了,这里可以省略
switched to db db_ahoh
> show collections
tb_user

这样我们就看到了,数据库db_ahoh中存在一个表tb_user

1.5 检索表中的所有数据

类似于关系数据库中的select * from tb_name,我们可以使用db.tb_name.find()查询表中所有的数据。

举个例子,查询数据表tb_user中所有的数据:

> db.tb_user.find()
{ "_id" : ObjectId("62d3d4b79e0562d1e456d9de"),"username" : "张三","age" : 18 }

可以看到,里面有我们之前在创建数据库时插入的一条数据。

1.6 新建数据表、插入数据

和数据库一样,数据表其实也是不需要提前创建的,在使用的时候可以直接使用db.tb_name.insert()插入数据即可,如果表不存在,就会创建该表。

举个例子,创建一个名为tb_admin的表:

> db.tb_admin.insert({username:'李四',age:11})   # 创建并插入数据
WriteResult({ "nInserted" : 1 })
> show collections
tb_admin
tb_user
> db.tb_admin.find()
{ "_id" : ObjectId("62d3d7099e0562d1e456d9df"),"username" : "李四","age" : 11 }

1.7 删除数据表

使用db.tb_name.drop()删除指定的数据表。

举个例子,删除名为tb_admin的数据表:

> db.tb_admin.drop()
true
> show collections
tb_user

在执行drop()指令后,查看数据表的个数,就可以发现tb_admin已经被删除了。

1.8 删除数据库

使用db.dropDatabase()指令直接删除当前使用的数据。

举个例子,删除db_admin数据:

> show dbs
admin    0.000GB
config   0.000GB
db_ahoh  0.000GB       # 删除之前
local    0.000GB
> db.dropDatabase()    # 删除数据库
{ "ok" : 1 }
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

二、数据检索

在学习检索之前,我们先建立一个新的数据库,并插入数据,代码如下:

use db_adoh
db.tb_user.insert({username:"小明",age:12})
db.tb_user.insert({username:"小红",age:31})
db.tb_user.insert({username:"明凯",age:12})
db.tb_user.insert({username:"秀红",age:22})

2.1 查找所有数据

此时表中的数据:

> db.tb_user.find()
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"username" : "小明","age" : 12 }
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e5"),"username" : "小红","age" : 31 }
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e6"),"username" : "明凯","age" : 12 }
{ "_id" : ObjectId("62d3dc969e0562d1e456d9e7"),"username" : "秀红","age" : 22 }

2.2 查找age=12的数据

find()传入{age:12}表示查找age=12的数据:

> db.tb_user.find({age:12})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 12 }
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e6"),"age" : 12 }

类似的,查找username="小明"的数据:

> db.tb_user.find({username:"小明"})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 12 }

2.3 查找age>22的数据

find()传入参数{age:{$gt:22}}表示age>22

> db.tb_user.find({age:{$gt:22}})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e5"),"age" : 31 }

$gt:22表示Greater than 22

2.4 查找age<22的数据

find()传入参数{age:{$lt:22}}表示age<22

> db.tb_user.find({age:{$lt:22}})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 12 }

$lt:22表示Less than 22

2.5 查找age>=22的数据

find()传入参数{age:{$gte:22}}表示age>=22

> db.tb_user.find({age:{$gte:22}})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e5"),"age" : 31 }
{ "_id" : ObjectId("62d3dc969e0562d1e456d9e7"),"age" : 22 }

或者传入参数{age:{$lte:22}}查找age<=22的数据:

> db.tb_user.find({age:{$lte:22}})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 22 }

$gt$lt后面加上e$gte$lte表示大于等于/小于等于。

2.6 查找age>=12,且age<=30的数据

find()传入参数{age:{$gte:12,$lte:30}}表示12=<age<=30

> db.tb_user.find({age:{$gte:12,$lte:30}})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 22 }

使用{$gte:12,$lte:30}表示联合条件查询。

2.7 查找username中包含“明”字的数据

find()传入参数{username:/明/}表示username包含“明”字:

> db.tb_user.find({username:/明/})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 12 }

2.8 查找username中以“明”开头的数据

find()传入参数{username:/^明/}表示以“明”开头的username

> db.tb_user.find({username:/^明/})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e6"),"age" : 12 }

2.9 查找username中以“明”结尾的数据

find()传入参数{username:/明$/}表示以“明”结尾的username

> db.tb_user.find({username:/明$/})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 12 }

2.10 只查找username或者age列中的数据

find()传入参数{username:1}表示只查询username数据:

> db.tb_user.find({},{username:1})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"username" : "小明" }
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e5"),"username" : "小红" }
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e6"),"username" : "明凯" }
{ "_id" : ObjectId("62d3dc969e0562d1e456d9e7"),"username" : "秀红" }

这样我们就得到了所有username数据,而且不包含age

还可以查找符合特定条件的指定列数据,例如,查找age>12username

> db.tb_user.find({age:{$gt:12}},{username:1})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e5"),"username" : "小红" }
{ "_id" : ObjectId("62d3dc969e0562d1e456d9e7"),"username" : "秀红" }

find()函数的第二个参数中设置为1的属性会被查找。

2.11 按照年龄排序查询结果

使用.sort({age:1})升序排列结果:

> db.tb_user.find().sort({age:1})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 22 }
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e5"),"age" : 31 }

年龄从上到下增加。

使用.sort({age:-1})降序排列结果:

> db.tb_user.find().sort({age:-1})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e5"),"age" : 22 }
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 12 }

年龄从上到下递减。

2.12 查询username=“小明”,age=12的数据

再插入一个username为“小明”,age16的数据,然后查找username=小明age=12的数据:

> db.tb_user.insert({username:'小明',age:16}))
WriteResult({ "nInserted" : 1 })
> db.tb_user.find({username:"小明",age:12})
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 12 }

2.13 查找前3条数据

使用limit(num)限制查询结果的数量:

> db.tb_user.find().limit(3)
{ "_id" : ObjectId("62d3dc949e0562d1e456d9e4"),"age" : 12 }

2.14 查找3条数据之后的数据

使用skip(num)跳过结果中的前num条数据:

> db.tb_user.find().skip(3)
{ "_id" : ObjectId("62d3dc969e0562d1e456d9e7"),"age" : 22 }
{ "_id" : ObjectId("62d3ef1b9e0562d1e456d9e8"),"age" : 16 }

三、总结

  1. 基础的数据库创建、删除指令
  2. 基础的数据增、删、改、查指令
  3. 基础的查找指令

原文地址:https://node-pedia.blog.csdn.net

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读552次。com.mongodb.MongoQueryException: Query failed with error code 292 and error message 'Executor error during find command :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.' on server 11.51.141.63:27017 _mongodb 大文件 下载失败
文章浏览阅读635次,点赞9次,收藏8次。MongoDB 是一种 NoSQL 数据库,它将每个数据存储为一个文档,这里的文档类似于 JSON/BSON 对象,具体数据结构由键值(key/value)对组成。
文章浏览阅读2.1k次。和。_mongodb 日期类型
文章浏览阅读1.7k次。Scalestack等客户期待使用MongoDB Atlas Vector Search和Amazon Bedrock构建下一代应用程序
文章浏览阅读970次。SpringBoot整合中间件mongodb、ES_springboot3 elasticsearch json数据
文章浏览阅读673次。MongoDB 简介_尚医通sql
文章浏览阅读1k次,点赞8次,收藏9次。官网下载MongoDB安装包后进行解压(因了解并不深入,故暂不进行详细说明,自行查找其他安装方法,后期了解深入后将进行该教程的完善)在bin目录下使用命令启动:./mongod --config …/mongodb.conf。该文章任然处于完善中,如果存在错误遗漏的地方,欢迎私信联系。安装相关的nuget包后即可通过以下方法连接数据。YX9010_0@的第二十篇文章。
文章浏览阅读1.2k次,点赞17次,收藏26次。社交场景, 使用 MongoDB 存储存储用户信息, 以及用户发表的朋友圈信息, 通过地理位置索引实现附近的人, 地点等功能.游戏场景, 使用 MongoDB 存储游戏用户信息, 用户的装备, 积分等直接以内嵌文档的形式存储, 方便查询, 高效率存储和访问.物流场景, 使用 MongoDB 存储订单信息, 订单状态在运送过程中会不断更新, 以 MongoDB 内嵌数组的形式来存储, 一次查询就能将订单所有的变更读取出来.物联网场景, 使用 MongoDB 存储所有接入的智能设备信息, 以及设备汇报的日
文章浏览阅读686次。您可以使用 update_one() 方法来更新 MongoDB 中调用的记录或文档。update_one() 方法的第一个参数是 query 对象,用于定义要更新的文档。注释:如果查询找到多个记录,则仅更新第一个匹配项。第二个参数是定义文档新值的对象。_python 更新 mongodb 数据
文章浏览阅读1.3k次。首先来学习一下nosql这里安装就不进行介绍 只记录一下让自己了解mongodb。_nosql注入
文章浏览阅读4.1k次,点赞8次,收藏7次。在data的目录下,创建一个db文件。因为启动MongoDB服务之前必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。第一步:安装时,Custom是指可以自定义安装路径,然后傻瓜式安装即可(注意:先不要安装图形化工具,否则安装时间会特别长):如果要想连接成功,必须要开服务,即mongod -dbpath C:MongoDBdatadb的cmd要一直开着。然后回车,ctrl+F输入port找到端口号,一般为:27017。打开命令行,然后找到bin文件地址,并输入。_mongodb windows安装
文章浏览阅读5.1k次,点赞3次,收藏43次。详细介绍MongoDB数据库的基本知识,安装方法,基本操作,_mongodb数据库
文章浏览阅读3.2k次。安装教程翻看以往文章。_navicat 连接mongodb
文章浏览阅读426次,点赞9次,收藏12次。win10开放端口:https://blog.csdn.net/m0_43605481/article/details/119255256。我的是阿里云服务器,所以直接在安全组中加入规则,端口范围:27017,授权对象:0.0.0.0。windows在mongodb安装文件夹的bin文件夹中的mongod.cfg。数据库名字是test,打算创建一个用户,账号aaa,密码bbb,权限readWrite。因为该用户是创建在test数据库的,所以在最后要加上test。O了,然后恢复了test的数据。
文章浏览阅读1.1k次。聚合操作主要用于处理数据并返回计算结果。聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和、平均值、最大值、最小值)以返回单个结果。MongoDB的聚合查询​聚合是MongoDB的高级查询语言,它允许我们通过转化合并由多个文档的数据来生成新的在单个文档里不存在的文档信息。MongoDB中聚合(aggregate)主要用于处理数据(例如分组统计平均值、求和、最大值等),并返回计算后的数据结果,有点类似sql语句中的count(*)、groupby。..._如何将几个db的数据统整在一起做查询
文章浏览阅读680次,点赞7次,收藏8次。(2)application.properties配置文件。(4)UserService类。(5)测试和测试结果。
文章浏览阅读1k次,点赞17次,收藏25次。Studio 3T 2023.9 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持自然语言查询_mongodb客户端
文章浏览阅读1.1k次,点赞32次,收藏27次。插件式的存储引擎架构可以实现 Server 层和存储引擎层的解耦,可以支持多种存储引擎,如 MySQL 既可以支持 B-Tree 结构的 InnoDB 存储引擎,还可以支持 LSM 结构的 RocksDB 存储引擎。MongoDB 中的记录就是一个 BSON 文档,它是由键值对组成的数据结构,类似于 JSON 对象,是 MongoDB 中的基本数据单元。的简称,是 JSON 文档的二进制表示,支持将文档和数组嵌入到其他文档和数组中,还包含允许表示不属于 JSON 规范的数据类型的扩展。
文章浏览阅读5.1k次,点赞6次,收藏96次。本文设计了一种基于智能室内温度控制的自动调速风扇。以STM32系列单片机为核心主控板,通过程序代码驱动和使用温度传感器模块实现对环境温度的实时监测,并可以实时显示环境温度。同时,可以设置温度检测的上下警告值,根据需求自行调节。_stm32 温控风扇
文章浏览阅读898次,点赞13次,收藏21次。在MongoDB中,我们使用find()和find_one()方法来在集合中查找数据,就像在MySQL数据库中使用SELECT语句来在表中查找数据一样。_pymongo find_one