MongoDB安装

只支持 ubuntu20.04 , 22.04版,且64位系统

sudo apt update

sudo apt install -y mongodb

sudo systemctl start mongodb 启动
sudo systemctl enable mongodb 自动启动
sudo systemctl status mongodb 检查状态
sudo systemctl restart mongodb 重启
默认端口 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)