只支持 ubuntu20.04 , 22.04版,且64位系统
sudo apt update
apt-cache madison mongodb 查看版本 如果没有则使用下面的方法
sudo apt install -y mongodb 安装
sudo systemctl start mongodb 启动
sudo systemctl enable mongodb 自动启动
sudo systemctl status mongodb 检查状态
sudo systemctl restart mongodb 重启
sudo systemctl stop mongodb 停止
mongod --version 查看版本 建议7.015
默认端口 27017
开启外网:/etc/mongodb.conf :bind_ip = 0.0.0.0 虚拟机里需要开启,服务器中如果不开则使用ssh模式
数据库工具创建一个库和集
python的使用
pip install pymongo
官方文档:
https://www.mongodb.com/zh-cn/docs/languages/python/pymongo-driver/current/
示例
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/test') #连接数据库
try:
database = client["test"] #获取数据库
Article = database["article"] #获取文章集合
except Exception as e:
print('mongoDB数据库连接错误,退出:',e)
exit(1)
# 写入一条数据
result = Article.insert_one({'title':'标题1','content':'内容2','createdAt':datetime.now()})
print(f'写入的数据ID:{result.inserted_id}')
# 更新一条数据
update_query = {"title": "标题1"} #查询更新的条件
new_values = {"$set": {"content": '这是更新的内容'}}
result = Article.update_one(update_query, new_values)
print(f"匹配到的数据条数: {result.matched_count}, 修改的数据条数: {result.modified_count}")
# 列出Article集合中的所有数据
data = Article.find()
for doc in data: # 遍历结果
print(doc) #输出对象(这个对象无法直接使用)
print(doc.get('title')) #
# 按条件查询一条数据
query = {"title": "标题1"}
result = Article.find_one(query)
print("查询到的结果:", result)
# 按条件查询多条数据
query = {"title": "标题"}
results = Article.find(query)
articles = [] #定义一个接收数组,因为查询结果返回的是mongodb游标,无法直接使用
for doc in results: # 遍历结果
article = {
'title': doc.get('title'),
'content': doc.get('content'),
'createdAt': doc.get('createdAt')
}
#将遍历结果加入数组
articles.append(article)
安装源没有mongodb,或wu无指定版本
安装 gnupg 和 curl
sudo apt-get install gnupg curl
添加MongoDB官方的GPG密钥
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
添加MongoDB的APT仓库
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
更新APT包列表
sudo apt-get update
apt-cache madison mongodb-org 查看版本
安装
sudo apt-get install -y mongodb-org
安装mongodb命令管理工具:
sudo apt-get install -y mongodb-mongosh
如果提示 libssl1.1 错误:
使用以下命令下载 libssl1.1
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
安装它
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
管理命令,和上面的命令后面少了个d
sudo systemctl start mongod 启动
sudo systemctl enable mongod 自动启动
sudo systemctl status mongod 检查状态
sudo systemctl restart mongod 重启
sudo journalctl -u mongod.service -r 查看错误
外网访问和启用身份认证
进入命令行
mongosh
use xiaoyi 进入要设置的数据库
执行下面的命令:
db.createUser({
user: "用户名",
pwd: "密码",
roles: [ { role: "readWrite", db: "xiaoyi" } ]
})
编辑/etc/mongod.conf
net:
port: 27017
bindIp: 0.0.0.0
# 启用身份认证
security:
authorization: "enabled"
在golang应用中要修改使用远程数据库
clientOptions := options.Client().ApplyURI("mongodb://用户名:密码@localhost:27017/xiaoyi")
查询命令
查info集下面type字段值为rent的所有结果
db.info.find({ type: "rent" })
卸载
sudo apt-get purge mongod* 卸载
清理未完成的安装
sudo apt-get autoremove
sudo apt-get clean
删除数据目录
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
删除配置文件
sudo rm /etc/mongod.conf
遇到过一次因为依赖卸载不了mongo-tools,可以执行强制卸载:
sudo dpkg --remove --force-all mongo-tools