《MongoDB入门教程》第04篇 MongoDB客户端

《MongoDB入门教程》第04篇 MongoDB客户端mongoshell 是一个用于连接 MongoDB 的交互式 JavaScript 接口 mongoshell 可以用于操作 MongoDB 中的数据 也可以执行一些管理任务 showdbs 命令用于列出服务中的全部数据库 use 命令用于切换数据库 showcollecti 命令用于列出当前数据库中的所有集合 文档的基本操作包括创建 Create 读取 Read 更新 Update 以及删除 Delete 这些操作也被称为 CRUD

本篇我们介绍 MongoDB 客户端工具 mongo 的使用。

mongo shell

mongo shell 是一个用于连接 MongoDB 的交互式 JavaScript 接口。mongo shell 可以用于操作 MongoDB 中的数据,也可以执行一些管理任务。

mongo shell 类似于 MySQL 数据库客户端 mysql,PostgreSQL 客户端 psql,或者 Oracle 数据库中的 SQL*Plus 工具。

注意,MongoDB v5.0 开始默认弃用了随着 MongoDB 一起安装的 mongo shell,推荐使用新的 mongsh。

在使用 mongo shell 之前,我们需要下载并安装该工具。

安装完成之后,在命令行中输入以下命令:

mongosh 

mongo shell 会自动连接到本地(localhosr)默认端口(27017)上的 MongoDB 服务。

mongo shell 即可以作为一个功能完备的 JavaScript 解释器,也可以作为一个 MongoDB 客户端工具。

JavaScript 解释器

mongo shell 是一个功能完备的 JavaScript 解释器,所以我们可以用它执行 JavaScript 代码。例如:

> Math.max(10,20,30); 30 

mongo shell 允许输入跨行命令,当我们输入回车时它会检测 JavaScript 语句是否完整。如果语句不完整,我们可以在下一行继续输入:

> function add(a, b) { 
    ... return a + b; ... } > add(10,20); 30 

输入 console.clear() 命令可以清空屏幕:

console.clear() 

MongoDB 客户端

mongo shell 是一个 MongoDB 客户端。默认情况下,它会连接本地 MongoDB 服务中的 test 数据库,并且将数据库连接设置为全局变量 db。

db 变量可以用于查看当前数据库:

 > db test 

除了 JavaScript 语法之外,mongosh 还提供了很多方便我们与 MongoDB 数据库服务器交换的命令。例如,shows dbs 命令可以列出服务中的全部数据库:

test> show dbs admin 41 kB config 73.7 kB local 81.9 kB 

以上输出结果显示了 3 个数据库。

如果想要切换当前数据库,可以使用 use 命令。例如,以下命令可以将当前数据库切换为 bookdb 数据库:

test> use bookdb switched to db bookdb 

注意,我们可以切换到一个不存在的数据库。此时,当我们第一次保存数据时,MongoDB 会自动创建这个数据库。

执行以上命令之后,变量 db 的值为 bookdb:

> db bookdb 

此时,我们可以通过变量 db 访问数据库 bookdb 中的集合 books:

> db.books bookdb.books 

基本的 CRUD 操作

下面我们演示一下如何创建(Create)、读取(Read)、更新(Update)以及删除(Delete)文档。这些操作也被称为 CRUD。

本文只涉及简单的 CRUD 操作,我们将会在后续教程中学习详细的 CRUD 操作。

创建文档

如果想要在集合中创建一个新的文档,可以使用 insertOne() 方法。

以下命令为集合 books 增加了一个新的文档(一本新书):

db.books.insertOne({ 
    title: "SQL编程思想", published_year: 2021 }) 

输出结果如下:

{ 
    "acknowledged" : true, "insertedId" : ObjectId("62bb0c64b1f9b7b") } 

当我们输入回车时,mongo shell 会将命令发送到 MongoDB 服务器。如果命令有效,MongoDB 会插入文档并返回结果。

以上示例中,返回对象包含两个键:acknowledged 和 insertedId。insertedId 的值就是文档的 _id 字段。

如果我们增加文档时没有指定 _id 字段,MongoDB 会自动为文档指定一个唯一的 ObjectId 作为 _id 字段的值。

MongoDB 使用 _id 字段唯一标识集合中的文档。

查找文档

如果想要查找集合中的文档,可以使用 findOne() 方法。例如:

db.books.findOne() 

输出结果如下;

{ 
    _id: ObjectId("62bb0c64b1f9b7b"), title: 'SQL编程思想', published_year: 2021 } 

pretty() 方法可以将输出结果进行格式化显示,例如:

db.books.find().pretty() { 
    "_id" : ObjectId("62bb0c64b1f9b7b"), "title" : "SQL编程思想", "published_year" : 2021 } 

更新文档

如果想要更新某个文档中的内容,可以使用 updateOne() 方法。该方法至少需要提供两个参数:

  • 第一个参数指定了需要更新的文档。
  • 第二个参数指定了更新操作的内容。

以下示例更新了标题为“SQL编程思想”的文档的 published_year 字段:

db.books.updateOne( { 
    title: "SQL编程思想"}, { 
    $set: { 
    published_year: 2022 }} ) 

其中,第一个参数表示更新标题为“SQL编程思想”的第一个文档。第二个参数使用 $set 操作符更新字段 published_year 的值。返回结果如下:

{ 
    acknowledged: true, insertedId: null, matchedCount: 1, modifiedCount: 1, upsertedCount: 0 } 

删除文档

如果想要删除集合中的某个文档,可以使用 deleteOne() 方法。该方法包含一个参数,用于指定要删除的文档。

以下示例使用 deleteOne() 方法删除集合 books 中标题为“SQL编程思想”的第一个文档:

db.books.deleteOne({ 
   title: "SQL编程思想"}); 

输出结果如下:

{ 
    "acknowledged": true, "deletedCount": 1 } 

返回结果中的 deletedCount 表示成功删除了一个文档。

如果想要查看当前数据库中的所有集合,可以使用 show collections 命令:

show collections books 

数据库 bookdb 中目前只包含一个集合。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226080.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午7:53
下一篇 2026年3月17日 上午7:53


相关推荐

  • android错误之android.util.AndroidRuntimeException: You cannot combine custom titles with other title

    报如下错误:android.util.AndroidRuntimeException: You cannot combine custom titles with other title features这个问题主要是由下面语句造成的。        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);        setContent

    2022年3月10日
    49
  • Σ求和符号_西格玛符号怎么打

    Σ求和符号_西格玛符号怎么打转自:https://zh.wikipedia.org/wiki/%E6%B1%82%E5%92%8C%E7%AC%A6%E5%8F%B7求和符号(Σ,sigma),是欧拉于1755年首先使用的。这个符号是源于希腊文σογμαρω(增加)的字头,Σ正是σ的大写。求和的结果是给定的数值相加后的总值,又称加总。举例而言,若有4个数值:1、3、5、7,则这4个数值的总和为:

    2022年10月9日
    4
  • 创建软RAID5阵列

    创建软RAID5阵列centos7 部署 raid5 阵列前言 实验环境系统 Linxucentos7 内存 硬盘 20GB 系统盘一块 3 块 5GB 拓展硬盘 目的 用 4 块硬盘在 centos7 系统中模拟软 Radi5 磁盘阵列 当其中一块盘坏掉 保证生产正常运行 一 什么是磁盘阵列二 安装磁盘阵列三 模拟磁盘坏掉四 总结

    2026年3月17日
    2
  • TraCI4Matlab的安装教程「建议收藏」

    TraCI4Matlab的安装使用教程安装1、下载安装Sumo2、下载安装TraCI4Matlab3、设置环境变量4、添加traci4matlab.jar路径5、将javaclasspath.txt复制至Matlab路径中6、配置Matlab路径安装Matlab有联合Sumo的插件traci4Matlab,网上还没有中文版的安装教程,走过的弯路,后来研究者尽可能少走。1、下载安装Sumo百度搜索sumo,点击进入官网,如图1:根据自己电脑系统进行下载:软件占的空间较少,按照提示安装完成即可:2

    2022年4月12日
    72
  • 创建Google网站地图Sitemap.xml建议收藏

    Sitemap.xml是google搞出来的,也就是网站地图,不过这个网站地图是用xml写的,而且要按google的标准来写,并且要将写出来的这个文件sitemap.xml上传到自己的服务器空间中去。

    2021年12月20日
    58
  • 留言板的代码_留言板留言大全短句

    留言板的代码_留言板留言大全短句<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><metahttp-equiv=”X-UA-Compatible”content=”IE=edge”><metaname=”viewport”content=”width=device-width,initial-scale=1.0″><title>D.

    2022年10月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号