MongoDB分别如何接入到python(FastApi),java(spring)中

12 篇文章 0 订阅
9 篇文章 0 订阅

1.docker安装mongodb

1.1docker-compose容器编排

1.2mongodb的设置

mongodb很特殊的一点就是必须要进行权限设置,下面是登录的mongodb后,选择admin并进行权限认证,然后通过use可以创建出一个新的库lkp,然后可以通过db.createUser创建对应可以操作该库的用户和权限,对应的可以参考文档:https://cloud.tencent.com/developer/article/1506715

use admin
db.auth("admin","123456")
use lkp
db.createUser({ user: "root", pwd: "root", roles: [{ role: "dbAdmin", db: "lkp" },{ role: "readWrite", db: "lkp" }] })

2.python(FastApi)接入mongodb

2.1pymongo

pymongo是python用来操作mongodb的库,使用起来也非常简单。
首先需要下载该库,使用命令

pip install pymongo

之后便是在代码中引入了

from pymongo import MongoClient
# 创建mongodb的连接,连接方式如下,类似:mongodb://账号:密码@mongodb地址:端口
DB_CLIENT = MongoClient('mongodb://admin:123456@10.219.36.167:27017')
# admin是默认的mongodb的库名称
DB = DB_CLIENT['admin']  
# 如上建立好了连接,下面的操作都是使用DB这个对象

2.2crud操作

首先顶一个数据模型,方便下面的操作

from pydantic import BaseModel
from typing import List
class Weather(BaseModel):
    today: str
    des: str
    temperature: str
    details: List[str]
    day: str
    update_time: int

下面就是对应的crud操作

from pymongo import MongoClient
from typing import List

# 单条插入,返回插入id
def save(weather: Weather):
    # 这里DB后面的weather就是对应的集合名称,不存在的时候会自动创建
    # 返回的是数据是 ObjectId 类型的。需要获取inserted_id就是刚插入的数据的id(自动生成的)
    inserted_obj = DB.weather.insert_one(weather.dict())
    return str(inserted_obj.inserted_id)


# 批量插入并,返回id列表
def batch_save(weather_list: List[Weather]):
    data_list = []
    for weather in weather_list:
        data_list.append(weather.dict())
    inserted_id_obj_list = DB.weather.insert_many(data_list)

    inserted_id_list = []
    for inserted_id_obj in inserted_id_obj_list:
        inserted_id_list.append(inserted_id_obj.inserted_id)
    return inserted_id_list


# 查询
def get(query: dict):
    result = []
    date_cursor = DB.weather.find(query)
    for x in date_cursor:
        # 将每条数据添加到数组中
        result.append(x)
    return result


# 删除数据
def delete(query: dict):
    DB.weather.delete_many(query)


# 更新数据
def update(weather: Weather):
    query = {"day": weather.day}
    values = {"$set": weather.dict()}
    DB.weather.update_many(query, values)

3.java(spring)接入mongodb

3.1依赖引入

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

3.2配置

spring:
  data:
    mongodb:
      uri: mongodb://root:root@${myurl.mongodb}/lkp

3.3使用

@Autowired
private MongoTemplate mongoTemplate;
//然后在直接在代码中对mongoTemplate操作即可,里面封装了完善的操作api,具体内容自行搜索相关资料
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是lk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值