IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> MongoDB分别如何接入到python(FastApi),java(spring)中 -> 正文阅读

[Java知识库]MongoDB分别如何接入到python(FastApi),java(spring)中

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,具体内容自行搜索相关资料
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:40:46  更:2022-10-31 11:42:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:26:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码