首页 > 数据库 >MongoDB单节点部署与基本操作

MongoDB单节点部署与基本操作

时间:2024-09-05 09:52:26浏览次数:16  
标签:mytest mongodb db mongosh MongoDB test 基本操作 节点

MongoDB 7.0 单节点部署 与 MongoDB shell基本操作

部署准备:

  1、操作系统:CentOS7.9 

  2、在操作系统中,创建一个mongod的用户和用户组,并配置其sudo权限,如果使用root用户可以不考虑准备此项。

  3、mongodb服务二进制包:mongodb-linux-x86_64-rhel70-7.0.14.tgz 。 下载地址:https://www.mongodb.com/try/download/community

  4、mongodb shell二进制包:mongosh-2.3.0-linux-x64.tgz。下载地址:https://www.mongodb.com/try/download/shell

  

部署mongodb

  1、解压mongodb服务包,移动至/data

sudo tar zxf mongodb-linux-x86_64-rhel70-7.0.14.tgz 
sudo mv mongodb-linux-x86_64-rhel70-7.0.14 /data/mongodb

  2、创建数据目录和日志目录

sudo mkdir /data/mongodb/{data,logs}

  3、创建配置文件

cat > /data/mongodb/mongodb.conf <<EOF
storage:
   dbPath: "/data/mongodb/data"
systemLog:
   destination: file
   path: "/data/mongodb/logs/mongod.log"
   logAppend: true
processManagement:
   fork: true
net:
   bindIp: 0.0.0.0
   port: 27017
security:
    authorization: enabled
EOF

  4、创建systemd管理文件

cat > /usr/lib/systemd/system/mongodb.service <<EOF
[Unit]
Description=MongoDB
After=network.target

[Service]
Type=forking
ExecStart=/data/mongodb/bin/mongod -f /data/mongodb/mongodb.conf

[Install]
WantedBy=multi-user.target
EOF

  5、启动mongodb

sudo systemctl start mongodb
sudo systemctl enable mongodb

 

MongoDB shell基本操作

更多操作参考官方文档:https://www.mongodb.com/zh-cn/docs/manual/crud/

一、部署mongosh

  1、解压mongosh二进制包,移动至数据目录

tar zxf mongosh-2.3.0-linux-x64.tgz
sudo mv mongosh-2.3.0-linux-x64 /data/mongosh

  2、配置环境变量

echo 'export PATH=/data/mongosh/bin:$PATH'  >> /home/mongod/.bashrc
source /home/mongod/.bashrc

 

二、MongoDB基本操作

  1、使用mongsh登陆Mongodb

[mongod@MongoDB ~]$ mongosh
Current Mongosh Log ID: 66d907153a28da6e485e739b
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.3.0
Using MongoDB:          7.0.14
Using Mongosh:          2.3.0

For mongosh info see: https://www.mongodb.com/docs/mongodb-shell/

 
Deprecation warnings:
  - Using mongosh on the current operating system is deprecated, and support may be removed in a future release.
See https://www.mongodb.com/docs/mongodb-shell/install/#supported-operating-systems for documentation on supported platforms.
test>

 

  2、创建管理员账户

use admin
db.createUser({
  user: "admin",
  pwd: passwordPrompt(), 
  roles: [ { role: "root", db: "admin" } ]
})

 

  3、在admin数据库中进行身份认证

db.auth("admin",passwordPrompt())

 

  4、查询所有数据库

show dbs;

 

  5、创建test数据库,并在数据库中创建一个mytest集合并向mytest集合中插入一条测试数据。

use test
db.mytest.insertOne(
   { key: "test", value: 100 }
)

 

  6、创建一个test用户,让该用户只能对test数据库具有读写权限。

use test
db.createUser({
  user: "test",
  pwd: passwordPrompt(),
  roles: [
    { role: "readWrite", db: "test" }
  ]
})

 

  7、使用test用户重新登陆,进入test数据库,并查询mytest集合中的数据。

db.mytest.find( { key: "test" } )

  

  8、再新增一条数据

db.mytest.insertOne(
   { name: "test", value: 100 }
)

 

  9、查询mytest集合所有数据

db.mytest.find()

 

  10、修改一条数据

db.mytest.updateOne(
   { name: "test" },
   {
     $set: { value: "PPP" }
   }
)

  11、删除一条数据

db.mytest.deleteMany({ name : "test" })

  12、删除mytest集合中所有数据

db.mytest.deleteMany({})

 

  13、查询test数据库中的所有集合

show collections

 

  14、删除mytest集合

db.mytest.drop()

 

  15、删除test数据库(需要登陆管理员用户)

db.dropDatabase()

 

标签:mytest,mongodb,db,mongosh,MongoDB,test,基本操作,节点
From: https://www.cnblogs.com/NanZhiHan/p/18396946

相关文章

  • redis-cli创建Redis集群时显式指定主从节点
    背景前些年用python写过一个RedisCluster自动化安装,扩容和缩容的工具,虽然当时官方的的redis-trib.rb集群创建工具提供了集群创建、检查、修复、均衡等命令行功能,个人接受不了redis-trib.rb,原因在于redis-trib.rb需要ruby的环境,同时无法自定义指定集群中节点的主从关系。随后R......
  • [Python图论]在用图nx.shortest_path求解最短路径时,节点之间有多条边edge,会如何处理?
    问:在使用图求最短路径时,如果节点之间有多条路径,shortest_route=nx.shortest_path(G,source=start_node,target=end_node,weight='length')会如何处理,会自动选择最短那条吗?#输出图G各节点之间有多少条边edge,并给出其长度Edgesbetween103928and25508583:共2条Edge......
  • XTransfer技术专家亮相2024MongoDB中国用户大会
    近日,2024MongoDB中国用户大会上海站顺利举办,XTransfer 技术专家、ApacheFlinkCommitter孙家宝受邀参加本次大会,并以“ApacheFlink连接 MongoDB 助力流式计算”为主题进行演讲。本次演讲简要介绍 ApacheFlink流式计算引擎,ApacheFlinkCDC流式数据集成框架,并重点探讨......
  • python 常见OS基本操作
    python常见OS基本操作Python的os模块提供了与操作系统交互的各种功能。下面按照一些常见的使用场景,按顺序介绍os模块的一些基本操作及其示例代码。1.获取和改变当前工作目录首先,通常我们会获取当前的工作目录,然后可能会改变工作目录。python深色版本importos#获取......
  • MongoDB 从4.4到7.0各个版本特性概览
    速览本文将从以下方面介绍数据库MongoDB4.4、5.0、6.0、7.0版本:MongoDB4.4新特性隐藏索引(HiddenIndexes)重定义分片键(RefinableShardKeys)复合哈希分片键(CompoundHashedShardKeys)对冲读(HedgedReads)同步建索引(SimultaneousIndexing)复制读请求(MirroredReads)基于时间保留Opl......
  • ‍️ SpringBoot中MongoDB的骚操作用法
    不知道大家在工作项目中有没有使用MongoDB,在哪些场景中使用。MongoDB作为NoSQL数据库,不像SQL数据库那样,可以使用Mybatis框架。如果需要在SpringBoot中使用MongoDB的话,我目前知道有三种方式,第一种是直接使用MongoDB官方的SDK,第二种是使用SpringJpa的方式,第三种是使用MongoTemplate......
  • 【配电网重构】高比例清洁能源接入下计及需求响应的配电网重构【IEEE33节点】(Matlab代
    ......
  • 电力系统机组组合优化调度(IEEE14节点、IEEE30节点、IEEE118节点)(Matlab代码实现)
     ......
  • Linux中网络命名空间基本操作
    Linux中网络命名空间基本操作前言网络命名空间(NetworkNamespace,简写:netns)是Linux内核提供的一种实现网络资源隔离的方法,允许不同的网络命名空间拥有独立的网络协议栈及网络配置,包括IP地址、路由表、网络设备、iptables规则等。docker便是基于netns实现的网络隔离。大多数现代L......