当前位置: 首页 > ops >正文

mongDB

目录

什么是mongoDB

主要特点

mongDB概念解析

完整术语列表

mongDB安装

mongDB shell

安装mongoDB shell

验证mongDB shell

数据库管理

查看数据库列表

创建数据库

删除数据库

默认数据库

系统内置数据库

集合管理

查看集合

创建集合

更新集合

删除集合

文档操作

插入文档

查询文档

find方法

findOne方法

删除文档

deleteOne

deleteMany

findOneAndDelete

更新文档

updateOne

updateMany

replaceOne

mongDB备份(moongodump)与恢复(mongorestore)

安装备份与恢复命令

mongoDB数据备份

mongDB数据恢复

mongDB用户管理


什么是mongoDB

MongoDB是一个文档型数据库,数据以类似JSON的文档形式存储。
MongoDB的设计理念是为了应对大数据量、高性能和灵活性需求 
MongoDB使用集合(Collections)来组织文档(Documents),每每个文档都是由键值对组成
的。
数据库(Database):存储数据的容器,类似于关系型数据库中的数据库。
集合(Collection):数据库中的一个集合,类似于关系型数据库中的表
文档(Document):集合中的一个数据记录,类似于关系型数据库中的行(row
以BSON格式存储。
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成,文档类似于
JSON对象,字段值可以包含其他文档,数组及文档数组:

主要特点

文档导向的存储:MongoDB是一个面向文档的数据库,它以JSON-like的格式存储数
据,使得数据结构更加灵活和丰富。
索引优化查询:MongoDB允许用户为文档中的任意属性创建索引、例如FirstName和A
ddress,从而提高查询效率和排序性能。
数据镜像与扩展性:通过本地或网络创建数据的副本,MongoDB实现了强大的数据冗余
和扩展能力。
水平扩展与分片:面对增加的负载,MongoDB可以通过分片技术将数据外布到计算机网
络中的其他节点上,实现水平扩展。
强大的查询语言:MongoDB使用JSON格式的查询语法,支持复杂杂的查询表达式,包括
对内嵌对象和数组的查询。
数据更新:利用 update()命令,MongoDB能够替换整个文档或更新指定的数据字段提供了灵活的数据更新方式

MapReduce批量处理:MongoDB的MapReduce功能专为大规模数据处理和聚合操作设
计,通过Map函数的emit(key,value)调用和Reduce函数的逻辑处理,实现高效的
数据汇总。
MapReduce脚本编写:Map和Reduce函数使用JavaScript编写,可以通过
db.ruinCommand或mapreduce命令在MongoDB中执行。
GridFS大文件存储:GridFS是MongoDB内置的功能,用于存储和检索大于BSON文
档大小限制的文件,如图片和视频。
服务端脚本执行:MongoDB允许在服务端执行JavaScript脚本,提供了直接在服务端
执行或存储函数定义以供后续调用的能力。
多语言支持:MongoDB提供了对多种编程语言的支持,包括但不限于RUBY、PYTHON、J
AVA、C++、PHP和C#。

mongDB概念解析

sql术语/概念mongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接,mongoDB
primary keyprimary key主键。mongdDB自动将_id字段设置为主键

完整术语列表

文档(Document):MongoDB的基本数据单元,通常是一个JSSON-like的结构,可以包含
多种数据类型。
集合(Collection):类似于关系型数据库中的表,集合是一维且文档的容器。在MongoDB
中,一个集合中的文档不需要有一个固定的模式。
数据库(Database):包含一个或多个集合的MongoDB实例。
BSON:BinaryJSON的缩写,是MongoDB用来存储和传输文档的二选制形式的JSON
索引(Index):用于优化查询性能的数据结构,可以基于集合中的一个或多个字段创建索
引。
分片(Sharding):一种分布数据到多个服务器(称为分片)的方法,用于处理大数据集和
高吞吐量应用。
副本集(Replica Set):一组维护相同数据集的MongoDB服务器,提供数据的冗余备份
和高可用性。
主节点(Primary):副本集中负责处理所有写入操作的服务器 
从节点(Secondary):副本集中的服务器,用于读取数据和在主节点故障时接管为主节点。
MongoDBShell:MongoDB提供的命令行界面,用于与MongoDB实例交互。
聚合框架(Aggregation Framework):用于执行复杂的数据处理理和聚合操作的一系列操作。
Map-Reduce:一种编程模型,用于处理大量数据集的并行计算。
GridFS:用于存储和检索大于BSON文档大小限制的文件的规范吃。

ObjectId:MongoDB为每个文档自动生成的唯一标识符。
CRUD操作:创建(Create)、读取(Read)、更新(Update)、删除(Delete)操作。
事务(Transactions):从MongoDB4.0开始支持,允许一组操作作为一个原子单元执行
操作符(0perators):用于查询和更新文档的特殊字段。
连接(Join):MongoDB允许在查询中使用 $1ookup操作符来实现类仙以SQL的连接操作。
TTL(Time-To-Live):可以为集合中的某些字段设置 TTL,以自动删除旧数据。
存储引擎(StorageEngine):MongoDB用于数据存储和管理的底层技术,如WiredTiger
和MongoDB的旧存储引擎MMAPv1。
MongoDB Compass:MongoDB的图形界面工具,用于可视化和管理里MongoDB数据。
MongoDBAtlas:MongoDB提供的云服务,允许在云中托管MongODB数据库

mongDB安装

安装前我们需要安装各个Linux平台依赖包。
dnf install libcurl openssl -y
解压安装包
tar -zxvf mongodb-linux-x86_64-rhe18-8.0.8.tgz
将解压包拷贝到指定目录
mv mongodb-linux-x86_64-rhel88-8.0.8 /usr/local/mongodb
MongoDB的可执行文件位于bin目录下,所以可以将其添加到
PATH路径中:
echo 'export PATH=/usr/local/mongodb/bin:$PATH' >>/etc/pprofile

source /etc/profile

我们在启动前可以先创建这两个目录并设置当前用户有读写权限:
[root@localhost ^]#mkdir -p /var/lib/mongo
[root@localhost `]#mkdir -p /var/log/mongodb
[root@localhost ^]#chown `whoami`/var/lib/mongo
设置权限
[root@localhost ^]#chown whoami /var/log/mongodb
#设置权限
由于mongodb依赖openssl11,需要编译安装openssl11
[root@localhost `]# dnf install -y gcc make perl
[root@localhost `]# tar xzf openssl-1.1.1w.tar.gz
[root@localhost ^]# cd openssl-1.1.1w
[root@sentinel01 openssl-1.1.1w]#./config --prefix=/opt/openssi11 --openssidir=
/opt/openss111/ssl
[rootesentine101 openssl-1.1.1.1w]#make -j$(nproc)
[root@sentinel01 openssl-1.1.1.1w]#make install

设置openss111的环境变量
[root@localhost ^]# echo 'export_D_LIBRARY_PATH=/opt/operssI11/lib:$LD_LIBRARY
PATH' | sudo tee /etc/profile.d/opensslll.sh
[root@localhost `]# source /etc/profile.d/opensslll.sh

接下来启动Mongodb服务:
[root@localhost
^]# mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/
ongod. log -fork
看到以下信息,说明启动成功。
[root@localhost ^]# mongod -dbpath /var/lib/mongo --logpath /var/log/mongodb/m
ongod. log-fork
about to fork child process, waiting until server iss ready for connections
forked process: 12102
child process started successfully, parent exiting

mongDB shell

安装mongoDB shell

解压安装包,将bin目录中mongosh二进制文件复制到PATH变量中列出的目录中,
例如/usr/local/bin:
[root@localhost`]# tar xzf mongosh-2.5.0-linux-x64-openss13.tgz
[root@localhost `]# cd mongosh-2.5.0-linux-x64-openss13
[root@localhost mongosh-2.5.0-linux-x64-openss13]# cd bin 
[root@localhost bin]# cp mongosh /usr/local/bin/
[root@localhost bin]# cp mongosh_crypt_vl.so /usr/local/1iib/

验证mongDB shell

打开你的终端并使用mongosh命令连接到MongoDB服务器:
mongosh --host <hostname> --port <port>
说明:
mongosh:启动MongoDBShell命令行工具。
-host<hostname>:指定MongoDB服务器的主机名或IP地址。
<hostname>:MongoDB服务器的主机名(如 localhost)或IP地址(如 127.0.0.1)。
-port<port>:指定MongoDB服务器的端口号。
<port>:MongoDB服务器监听的端口号,默认端口是27017。
输入mongosh默认连接本地mongodb数据库,看到以下信息说明登录成功,warnings
警告为优化提醒,可以暂时忽略,如若生产环境部署需要处理
[root@sentinel01 bin]# mongosh
Current Mongosh Log ID: 680al533277aalc07blb26ff
Connecting to:
mongodb://127.0.0. 1:27017/?directConnection=true&sserverSele
ctionTimeoutMS=2000&appName=mongosh+2.5.0
Using MongoDB:

8.0.8
2.5.0
Using Mongosh:
For mongosh info see: https://www.mongodb.com/docs/mongoedb-shell
The server generated these startup warnings when boot ing
2025-04-24T18:22:54.368+08:00: Using the XFS filesystemis strongly recommen
ded with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prod
notes-filesystem
2025-04-24T18:22:55.892+08:00: Access control is not enabled for the databas
Read and write access to data and configuration is unrestricted
2025-04-24T18:22:55.892+08:00: You are running this process as the root user,
which is not recommended

test>

数据库管理

查看数据库列表

要查看当前MongoDB实例中所有数据库的列表,可以使用
>show dbs
要查看当前正在使用的数据库,可以使用 db 命令:
>db

创建数据库

在MongoDB中,数据库的创建是一个简单的过程,当你首次向MongoDB中插入数据时,
如果数据库不存在,MongoDB会自动创建它。
我们只需选择一个数据库名称,并开始向其中插入文档即可。
当你使用use命令来指定一个数据库时,如果该数据库不存在,MongoDB将自动创建它。
MongoDB 创建数据库的语法格式如下:
use DATABASE NAME
如果数据库不存在,则创建数据库,否则切换到指定数据库和。

实例
以下实例我们创建了数据库runoob:
test> use runoob
switched to db runoob
runoob> db
runoob
runoob>

执行userunoob命令后,MongoDB将创建名为runoob的新数据库。此时,你可以开
始在这个数据库中创建集合和插入文档。
如果你想查看所有数据库,可以使用 showdbs
runoob> show dbs
40.00KiB  admin
config  60.00KiB
local  40.00 KiB
runoob>

可以看到,我们刚创建的数据库runoob并不在数据库的列表中,要显示它,我们需要
向runoob数据库插入一些数据。
runoob> db.runoob.insertOne(("name
:"zhangsan
acknowledged: true,
insertedId: Objectid('680a18f4277aa1c07b1b2700')

runoob> show dbs
admin  40.00 KiB
config  60.00KiB
local 40.00KiB
runoob 40.00 KiB
runoob>

删除数据库

如果你需要删除数据库,可以使用
db.dropDatabase()
方法:
use myDatabase
db.dropDatabase

上述命令将删除当前正在使用的myDatabase数据库及其所有集合
实例
runoob> show dbs

admin   40.00KiB
config  60.00KiB
local  40.00KiB
runoob 40.00 KiB
runoob> use runoob
already on db runoob
test> db.dropDatabase ()
{ok: 1,dropped: 'runoob)
runoob> show dbs
admin  40.00KiB
config  60.00KiB
local 40.00 KiB

默认数据库

MongoDB中默认的数据库为test,如果你没有创建新的数据库,数据将存放在test
数据库中。
当您通过shell连接到MongoDB实例时,如果未使用 use令切换到其他数据库,
则会默认使用test数据库。
例如,在启动MongoDB实例并连接到MongoDBshell后,如果您开始插入文档而未显
式指定数据库,MongoDB将默认使用 test数据库。

系统内置数据库

在MongoDB中,admin、config和local 是三个特殊的系统内置数据库
admin 数据库:存储所有数据库的用户身份信息和全局权限(如root用户)。用
户必须通过 admin数据库认证后才能执行跨库管理操作。
config数据库:仅在分片集群环境中存在。存储分片信息、块(chunk)分布、集合
分片策略等关键元数据。
local  数据库:存储当前节点的副本集状态、操作日志(oplog)等本地数据。数据不
会被复制到其他节点,仅存在于当前实例。

集合管理

查看集合

查看当前库已有集合,可以使用
show collections或show tables
>show collections

创建集合

MongoDB中使用
createCollection()方法来创建集合。
语法格式:
db.createCollection (name, options)
参数说明:
name:要创建的集合名称。
options:可选参数,指定有关内存大小及索引的选项。

参数名类型描述示例值
capped布尔值是否创建一个固定大小的集合true
size数值集合的最大大小(以字节为单位)。仅在capped为true时有效10MB
max数值集合中允许的最大文档数。仅在capped为true时有效5000
validator对象用于文档验证的表达式{$jsonSchema:{...}}
validtionlevel字符串指定文档验证的严格程度。
"off":不进行验证。
"strict":插入和更新操作都必须通过验证(默认)。
moderate":仅现有文档更新时必须通过验证,插
入新文档时不需要。
“strict”
validatio
naction
字符串指定文档验证失败时的操作。
error":阻止插入或更新(默认)。
warn":允许插入或更新,但会发出警告。
“error”
storageEn
gine
对象为集合指定存储引擎配置。{ wired Tiger:
{...}}
collation对象指定集合的默认排序规则{ locale: "en
strength: 2 }

"db.createCollection ("myComplexCollection", {

# 系统日志配置
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
  timeStampFormat: iso8601-utc

# 存储配置
storage:
  dbPath: /var/lib/mongo
  # journal选项在8.0+版本已移除,journaling总是启用

# 进程管理
processManagement:
  fork: true
  pidFilePath: /tmp/mongod.pid

# 网络配置
net:
  bindIp: 127.0.0.1
  port: 27017

# 安全配置
security:
  authorization: enabled

更新集合

在MongoDB中,不能直接通过命令来重命名集合。
MongoDB可以使用renameCollection方法来来重命名集合。
renameCollection命令的语法:
db.adminCommand({
renameCollection: "sourceDb. sourceCollection",
to:"targetDb.targetCollection",
dropTarget: <boolean>

参数说明:
renameCollection:要重命名的集合的完全限定名称(包括数据库名)
to:目标集合的完全限定名称(包括数据库名)。
dropTarget(可选):布尔值。如果目标集合已经存在,是否册除目标集合。默认值为alse.

实例
假设你要将
test数据库中的oldCollection重命名为 newCollection,可以按以下
步骤进行:
1.确保已连接到 test数据库
use test
2.运行renameCollection命令
db.adminCommand({
renameCollection: "test.oldCollection",
to: "test.newCollection" });

删除集合

MongoDB中使用drop()方法来删除集合。
州课
drop()方法可以永久地从数据库中删除指定的集合及其所有文档,这是是一个不可逆的操作,
因此需要谨慎使用。
语法格式:
db.collection名称.drop()
如果成功删除选定集合,则drop()方法返回true,否则返回 false 

实例
在数据库mydb中,我们可以先通过 showcollections
命令查看已存在的集合:
>use mydb
switched to db
>db.createCollection("kgc")
{ok:1}

mydb>show collections
kgc

接着删除集合 kgc:
>db.kgc.drop()
true

通过showcollections再次查看数据库 mydb中的集合:
>show collections
从结果中可以看出kgc集合已被删除。

文档操作

插入文档

常用的插入文档方法包括:

方法用途是否弃用
inserOne插入单个文档
interMany插入多个文档
insert插入单个或多个文档
save插入或更新文档

1、insertone()
insert0ne()方法用于在集合中插入单个文档。
db.collection名称.insert0ne(document,options)
document:要插入的单个文档。
options(可选):一个可选参数对象,可以包含writeConcerm和bypassDocumen
tValidation等。

实例
db.myCollection.insertOne({,
name:"Alice",
age:25.
city:"New York"
});

 2、insertMany()
insertMany()方法用于在集合中插入多个文档。
db.collection. insertMany(documents, options)
documents:要插入的文档数组。
options(可选):一个可选参数对象,可以包含ordered、writeConcern和bypassDo
cumentValidation等。

实例
db.myCollection. insertMany ([
name:"Bob",age:30,city:"Los Angeles" },

name:"Charlie",age:35,city:"Chicago" }]);

查询文档

find方法

find()方法以非结构化的方式来显示所有文档。
MongoDB 查询数据的语法格式如下:
db.collection. find(query, projection)
query:用于查找文档的查询条件。默认为 (),即匹配所有文档。
·projection(可选):指定返回结果中包含或排除的字段。

查找所有文档:
实例
db.myCollection.find();
按条件查找文档:
实例
db.myCollection.find({age:$gt: 25 } });
说明:
$gt这个条件的作用是筛选出age字段值大于25的文档。
类似的其他比较操作符:

$1t(小于)、$gte(大于等于)、$1te(小于等于)
$eq(等于)、Sne(不等于)

按条件查找文档,并只返回指定字段:
实例
db.myCollection.find(
age: { $gt: 25 } },

{ name:1,age: 1, id: 0 }

);

findOne方法

find0ne()方法用于查找集合中的单个文档。如果找到多个匹配配的文档,它只返回第一个。
语法:
db.collection.findOne (query, projection)
query:用于查找文档的查询条件。默认为 {},即匹配所有工文档
projection(可选):指定返回结果中包含或排除的字段。

查找单个文档:
db.myCollection.findOne({
"Alice"
name:

查找单个文档,并只返回指定字段:
db.myCollection.findone
{name:"Alice"},
name: 1, age: 1, _id: 0 });

删除文档

deleteOne

delete0ne()方法用于删除匹配过滤器的单个文档。
语法:
db.collection. deleteOne (filter, options
·filter:用于查找要删除的文档的查询条件。
options(可选):一个可选参数对象。

实例
db.myCollection.deleteOne({
Alice
name:
返回结果:
"acknowledged": true,
"deletedCount": 1}

deleteMany

deleteMany()方法用于删除所有匹配过滤器的文档。
语法:
db.collection. deleteMany(filter, options)
·filter:用于查找要删除的文档的查询条件。
options(可选):一个可选参数对象。

实例
"Bob
db.myCollection.deleteMany({
name:
返回结果:
"acknowledged": true,
deletedCount" : 1}

findOneAndDelete

findOneAndDelete()方法用于查找并删除单个文档,并可以选择返回删除的文档。
语法:
db.collection. findOneAndDelete (filter, options)
·filter:用于查找要删除的文档的查询条件。
·options:可选参数对象,如 projection、sort等。

实例
db.myCollection.findOneAndDelete(
{ name: "charlie" },

{ projection: { name: 1, age: 1 }}

);
findoneAndDelete返回被删除的文档,如果找不到匹配的文档,则返回null。

更新文档

在MongoDB中,更新文档的操作可以使用多种方法实现,常用的方法包括
update0n
、updateMany()、replaceOne()和findOneAndUpdate()。

插入测试数据
db.myCollection. insertMany([{ name: "Alice", age: 25,0city: "Los Angeles", statu"inactive"),{name: "Bob",age: 30,city:"Los Angeless", status:"active"},{ name: "Charlie", age: 35, city: "Chicago", status: "actiive"}])

updateOne

update0ne()方法用于更新匹配过滤器的单个文档。
语法:
db.collection. updateOne (filter, update, options)
·filter:用于查找文档的查询条件。
update:指定更新操作的文档或更新操作符。
options:可选参数对象,如upsert、arrayFilters

实例
db.myCollection.updateOne(
Alice
过滤条件
{ name:"Alice" }
{$set:{age: 26 } }更新操作
{upsert: false}可选参数

);

更新单个文档:
db.myCollection.updateOne(
{ name: "Alice"},
{$set:{age:26}}});

updateMany

updateMany ()方法用于更新所有匹配过滤器的文档。
语法:
db.collection. updateMany(filter, update, options)
filter:用于查找文档的查询条件。
update:指定更新操作的文档或更新操作符。
options:可选参数对象,如upsert、arrayFilters

实例
db.myCollection.updateMany (
{age:$1t: 30 } },//过滤条件
Sset: { status: "active" } },//更新操作
{ upsert:false } //可选参数

更新多个文档:
db.myCollection. updateMany(
age:{$1t: 30 } } },
{$set:{status:"active" } });

replaceOne

replace0ne()方法用于替换匹配过滤器的单个文档,新的文档将完全替换旧的文档。
语法:
db.collection. replaceOne(filter, replacement, options)
·filter:用于查找文档的查询条件。
·replacement:新的文档,将替换旧的文档。
options:可选参数对象,如upsert 等

实例
db.myCollection.replaceOne(
{ name: "Bob" },//过滤条件
{name: "Bob", age: 31 }//新文档

);

替换单个文档:
db.myCollection.replaceOne (
name:"Bob" },
name:"Bob", age: 31 });

findOneAndUpdate

findOneAndUpdate()方法用于查找并更新单个文档,可以选择返回更新前或更新后的文档。
语法:
db.collection. findOneAndUpdate (filter, update, optionns)
·filter:用于查找文档的查询条件。
update:指定更新操作的文档或更新操作符。
options:可选参数对象,如 projection、sort、upsert、returnDocument

实例
db.myCollection.findOneAndUpdate(
{name:"Charlie"},//过滤条件
{ $set: age: 36 } },//更新操作
{ returnDocument: "after"  }//可选参数,返回更新后的文档

);

查找并更新单个文档:
db.myCollection.findOneAndUpdate(
{name:" Charlie" },
{$set:{age:36}},
{returnDocument: "after"} );

mongDB备份(moongodump)与恢复(mongorestore)

安装备份与恢复命令

[root@localhost ^]# rpm -ivh mongodb-database-tools-rhe170-x86_64-100. 12. 0. rpm

mongoDB数据备份

mongodump命令脚本语法如下:
>mongodump -h dbhost -d dbname -o dbdirectory
-h:MongoDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.
1:27017

-d:需要备份的数据库实例,例如:test
-o:备份的数据存放位置,例如:/data/dump,当然该目录需要提前建立,在备份完成
后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

[root@localhost]mongodump
执行以上命令后,客户端会连接到ip为127.0.0.1端口号为27017的MongoDB服务
上,并备份所有数据到命令执行所在的目录下的dump/目录中。命令输出结果如下:

[root@localhost] mongodump

[root@localhost]# ls
dump

语法描述实例
mongodump --host HOST_NAME--port PORT_NUMBER该命令将备份所有Mongo
DB数据
mongodump --host
runoob.com --port27017
mongodump --dbpath DB_PATH --out BACmongodump --dbpa
KUP DIRECTORYth /data/db/ --o
ut /data/backup/
mongodump -collection COLLECTION
db DB NAME
该命令将备份指定数据
库的集合。
mongodump -coll
ection mycol --d
b test

mongDB数据恢复

mongodb使用mongorestore命令来恢复备份的数据。
mongorestore命令脚本语法如下:
mongorestore -h <hostname><:port> -d dbname <path>
--host<:port>,-h<:port>:MongoDB所在服务器地址,默认人为:localhost:270
17
-db,-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候
的不一样,比如test2
--drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份
后添加修改的数据都会被删除,慎用哦!
<path>:mongorestore最后的一个参数,设置备份数据所在位置,例如:c:\data\du
mp\test。你不能同时指定<path>和--dir选项,--dir也可!以设置备份目录
--dir:指定备份的目录,你不能同时指定(path>和--dir选项

接下来我们执行以下命令:
[root@localhost]#mongores tore
默认会从当前执行命令的路径下的dump
目录中读取备份数据
mongorestore

mongDB用户管理

1.连接到MongoDB
mongosh
2.切换到目标数据库
use test
3.创建用户
使用db.createUser命令创建用户并分配角色。
例如,创建一个名为testuser的用户,密码为password123,并赋予readWrite和dbA
dmin角色:

db.createUser({
user:"testuser",
pwd: "password123",
roles: [
{role:"readWrite",db: "<database_name>" },
{role: "dbAdmin", db: "<database_name
J})

4.验证用户
创建用户后,你可以使用db.auth
验证用户身份:

db.auth("testuser
password123")

5.启用身份验证
为了确保只有经过身份验证的用户才能访问MongoDB,需要要启用身份验证
编辑MongoDB配置文件mongod.conf,并在其中添加以下内容:

security:
authorization: "enabled"

然后重启MongoDB服务以应用更改。
或者在启动命令中添加认证参数,例如

mongod --auth --dbpath/var/lib/mongo --logpath /var/log/mongodb/mongod. log --f
ork

6.使用用户身份登录
启用身份验证后,你需要使用创建的用户身份连接到MongoDB:
mongosh --host <hostname> --port<port> -u "testuser" -p
password123" --authen
ticationDatabase "<database name>"

7.删除用户
使用 db.dropuser命令删除指定用户。
例如,删除名为testuser的用户:

db.dropUser("testuser")

http://www.xdnf.cn/news/13232.html

相关文章:

  • CentOS7.9 查询运维安全日志,排查恶意用户
  • 用C#实现单向链表和双向链表
  • 《滑动窗口》题集
  • 基于KubeSphere平台快速搭建单节点向量数据库Milvus
  • 【React-router-dom】浅拷贝,查询参数放到路由上
  • vue的这两个特性:数据驱动视图 与 双向数据绑定的区别
  • 工业环境的首选:试验台铁底板稳定性
  • 从设备监控到人员调度,可视化赋能车间全场景
  • 搭建一个springColud 项目,从头开始,里面有订单,库存两个模块
  • LangChain Chat History概念指南
  • 【ModelArts】ModelArts一站式AI开发平台详解(一)
  • 【WiFi扫描相关帧】
  • 条码二维码如何在数字医疗守护安全与效率?
  • 日志收集工具-logstash
  • Echarts大量数据柱图,禁止滑块拖动宽度,以及适配分辨率。
  • CentOS7下的Kafka集群安装部署
  • MongleDB数据库应用
  • 【Flash 芯片 MTD 专栏】Flash芯片识别异常导致mtd子系统分区创建失败
  • 如何判断一个bug,是前端还是后端的?
  • 工作记录:人物对话功能开发与集成
  • linux thermal framework(1)_概述
  • RAG文档解析难点2:excel数据“大海捞针”,超大Excel解析与精准行列查询指南
  • 如何定期检查和调整螺杆支撑座间隙?
  • Java八股文——JVM「内存模型篇」
  • HeidiSql (数据库可视化工具) v12.10 官方便携版
  • 2.Socket 编程 UDP
  • [极客时间]LangChain 实战课 ----- 01|LangChain系统安装和快速入门(2)
  • 3D扫描技术赋能汽车零部件尺寸测量效率提升
  • Mac M4 芯片运行大模型指南,包括模型微调与推理
  • Spring Boot 与 Kafka 的深度集成实践(三)