linux(centos8)打开的基本操作
# Start MongoDB.
sudo systemctl daemon-reload
sudo systemctl start mongod
# Verify that MongoDB has started successfully
sudo systemctl status mongod
sudo systemctl enable mongod
# 或者使用
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
# Stop MongoDB
sudo systemctl stop mongod
# 或者使用
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown
# Restart MongoDB.
sudo systemctl restart mongod
# Begin using MongoDB.
# Start a mongosh session on the same host machine as the mongod. You can run mongosh without any command-line options to connect to a mongod that is running on your localhost with default port 27017.
mongosh
# 或者使用
mongo
一些操作:
# 数据库database,查看数据库有哪些
show dbs
# 默认一般会有四个数据库:admin, 从权限的角度来看,这是"root"数据库,要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限;config,当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息;local,这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合;test,默认进入的数据库。
# use命令连接指定的数据库
use test # 连接test数据库,如果没有test这个库,会创建
# 使用db命令查看当前连接的数据库
db
# 建立collections,可以使用insertOne()、insertMany()和createIndex()函数,存进数据即建立
use myDB
db.myCollection.insertOne({jupy:1994}) # 建立myCollection集合,里面插入一条数据document
db.myCollection-1.insertOne({tom:1995}) # 建立myCollection1集合,里面插入一条数据document
db.myCollection2.createIndex({tobey:1996}) # 建立myCollection2集合,里面插入一条数据document
# # 建立students集合,里面插入多条document
db.students.insertMany( [
{ sID: 22001, name: "Alex", year: 1, score: 4.0 },
{ sID: 21001, name: "bernie", year: 2, score: 3.7 },
{ sID: 20010, name: "Chris", year: 3, score: 2.5 },
{ sID: 22021, name: "Drew", year: 1, score: 3.2 },
{ sID: 17301, name: "harley", year: 6, score: 3.1 },
{ sID: 21022, name: "Farmer", year: 1, score: 2.2 },
{ sID: 20020, name: "george", year: 3, score: 2.8 },
{ sID: 18020, name: "Harley", year: 5, score: 2.8 },
] )
# 也可以使用createCollection()函数,先创建集合,类似数据库中的表
db.createCollection("runoob")
# 查看集合列表
show collections
show tables
db.getCollectionNames() # 查看集合名字
db.getCollectionInfos() # 主要用来查看各个集合的UUID
# 查看集合内容
db.students.find() # 查看改集合的所有内容 等价于 SELECT * FROM students
# 指定相等条件,使用{ <field1>: <value1>, ... }
db.students.find({name:"harley"}) # 搜索名字为harley的document,等价于SELECT * FROM students WHERE name="harley"
# 使用查询运算符指定条件,使用{ <field1>: { <operator1>: <value1> }, ... }
db.students.find( { year:{$in:[1, 3]}}) # 等价于SELECT * FROM inventory WHERE year in (1,3)
# 修改数据update
# 修改单个document,使用db.students.updateOne()函数
db.students.updateOne({name:"Alex"},{$set:{age:25}}) # 匹配Alex的document,增加一个字段值age
db.students.updateOne({name:"Alex"},{$set:{year:7}}) # 匹配Alex的document,修改year字段值为7
# 修改多个document使用db.students.updateMany()函数
db.students.updateMany({year:3},{$set:{score:4.4}}) # 将所有3年级学生的分数都修改为4.4
# 删除集合的一些内容
db.students.deleteOne({year:3}) # 删除条件为year=3的第一个
db.students.deleteMany({year:1}) # 删除条件为year=1的所有
db.students.remove({}) # 删除所有document,但是students集合还在
db.students.drop() # 删除students集合
# 删除数据库
db.dropDatabase()
远程登入,以及添加账号密码:
# 查看当前数据库下面的用户有哪些
show users
# 为每个数据库单独设置账号
use myMongoDB // 跳转到需要添加用户的数据库
db.createUser({
user: 'jupy', // 用户名
pwd: 'jupy', // 密码
roles:[{
role: 'readWrite', // 读写权限角色
db: 'myMongoDB' // 数据库名
}]
})
# 开启mongd服务之后进行登入
mongo myMongoDB -u jupy -p jupy
db.dropUser('testuser') // 删除用户
db.updateUser('jupy', {pwd: '10000'}) // 修改用户密码
# 设置超级管理员账号密码
use admin
db.createUser({
user: 'administor', // 用户名(自定义)
pwd: 'admin123', // 密码(自定义)
roles:[{
role: 'root', // 使用超级用户角色
db: 'admin' // 指定数据库
}]
})
# 超级管理员登入
# 方式一
mongo
use admin
db.auth('administor', 'admin123') # 密码认证
# 方式二
mongo admin -u administor -p admin123
MongoDB术语:
安装:
# Create a /etc/yum.repos.d/mongodb-org-5.0.repo file so that you can install MongoDB directly using yum
vim /etc/yum.repos.d/mongodb-org-5.0.repo
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
sudo yum install -y mongodb-org
# To prevent unintended upgrades, pin the package. To pin a package, add the following exclude directive to your /etc/yum.conf file:
vim /etc/yum.conf
#exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
卸载:
sudo service mongod stop
sudo yum erase $(rpm -qa | grep mongodb-org)
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo