当前位置: 首页 > news >正文

MongoDB:数据库初步应用

一.连接MongoDB

1.MongoDBCompass连接数据库

连接路径:mongodb://用户名:密码@localhost:27017/

2.创建数据库(集合)

MongoDB中数据库被称为集合.

 MongoDBCompass连接后,点击红色框加号创建集合,点击蓝色框加号创建文档(数据表)

文档中的数据结构(相当于表中的列)设计不用管,添加数据的时候,自动创建列和数据类型.

3.在集合中添加数据

可以将JSON文件添加到集合中.如果是多条数据结构应该如下,不然会提示格式错误

[{ ... },{ ... },{ ... }]

如果是多条数据,最外层应该是[ ] , 这个和从MySql导出来的数据有点点不一样,如果是从MySQL中导出的话,要把json文档打开,按照上面这个格式去掉头尾.

二. Spring Boot 连接MongoDB

1.pom添加引用

<!--        添加mongodb引用--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>

 2.yml添加连接配置

spring:data:mongodb:uri: mongodb://用户名:密码@127.0.0.1:27017/fresh_mall?authSource=admin

上面的用户名和密码替换你自己的,如果不添加 ?authSource=admin 会提示权限错误.

三. Spring Boot 操作MongoDB

1. 创建MongoDB对应的实体类

@Getter
@Setter
@Document("user_address")
@Schema(name = "UserAddress", description = "用户地址")
public class UserAddress implements Serializable {private static final long serialVersionUID = 1L;@Schema(description = "主键")@Field("uuid")private String uuid;@Schema(description = "用户编号")@Field("userId")private String userId;
}

上面代码中@Document注解对应MongoDB中的集合名称,@Field注解对应集合中的字段名,这样配置之后MongoDB会自动完成实体到数据的映射.

2.通过MongoTemplate进行数据操作

@Resourceprivate MongoTemplate mongoTemplate;    //mongoDB操作模板@Overridepublic List<UserAddress> getAddressByUserId(String uid) {//创建查询对象Query query = new Query();//配置查询标准query.addCriteria(Criteria.where("userId").is(uid));List<UserAddress> list = mongoTemplate.find(query,UserAddress.class);return list;}

这个代码会自动查找user_address集合,因为实体类做了配置,并且在查找到内容之后,自动完成数据到对象的映射.

相关文章:

MongoDB:数据库初步应用

一.连接MongoDB 1.MongoDBCompass连接数据库 连接路径:mongodb://用户名:密码localhost:27017/ 2.创建数据库(集合) MongoDB中数据库被称为集合. MongoDBCompass连接后,点击红色框加号创建集合,点击蓝色框加号创建文档(数据表) 文档中的数据结构(相当于表中的列)设计不用管…...

C#之枚举中的按位与()按位或(|)。

一些基础定义&#xff1a; 按位或运算符&#xff08;|&#xff09;是一种位运算符&#xff0c;用来对两个二进制数进行操作。对于每个位上的1&#xff0c;如果至少有一个二进制数中的对应位为1&#xff0c;则结果为1&#xff1b;否则&#xff0c;结果为0。按位与运算符&#x…...

Blazor前后端框架Known-V1.2.12

V1.2.12 Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 Gitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;https://github.com/known/Known 概述 基于C#和Blazo…...

bug记录:微信小程序 给button使用all: initial重置样式

场景&#xff1a;通过uniapp开发微信小程序 &#xff0c;使用uview的u-popup弹窗&#xff0c;里面内嵌了一个原生button标签&#xff0c;因为微信小程序的button是有默认样式的&#xff0c;所以通过all: initial重置样式 。但是整个弹窗的点击事件都会被button上面的点击事件覆…...

【计算机视觉|生成对抗】带条件的对抗网络进行图像到图像的转换(pix2pix)

本系列博文为深度学习/计算机视觉论文笔记&#xff0c;转载请注明出处 标题&#xff1a;Image-to-Image Translation with Conditional Adversarial Networks 链接&#xff1a;Image-to-Image Translation with Conditional Adversarial Networks | IEEE Conference Publicati…...

[时序数据库]:InfluxDB进阶

文章目录 1 摘要2 背景2.1 问题一&#xff1a;针对Influx V2.0工具2.2 问题二&#xff1a;针对Influx查询语言 3 需求分析4 快速入门4.1 客户端驱动版本选择4.2 连接influx4.2.1 influx配置信息4.2.2 influx连接配置4.2.3 测试连通情况 5 Influx工具类5.1 InfluxQL工具类5.1.1 …...

uniapp编写微信小程序遇到的坑总结

1、阻止事件冒泡 使用uniapp开发微信小程序的时候&#xff0c;发现使用click.stop来阻止事件冒泡没有作用&#xff0c;点击了之后发现仍然会触发父组件或者祖先组件的事件。 在网上查阅&#xff0c;发现使用tap.stop才能阻止事件冒泡。 2、二维码生成 在网上找了很多&…...

Binary operator ‘*‘ cannot be applied to two ‘Double?‘ operands

在 swift 中声明 Double 类型参数变量在进行运算处理时抛出了如下异常 Binary operator * cannot be applied to two Double? operands 情况一 参数类型不匹配,需将参数类型进行匹配 self.max height / (length * width) // 初始 self.max height / (length * Double(wid…...

C#如何打包EXE程序生成setup安装文件

项目结束之后&#xff0c;有需要将winForm程序打包成.exe文件提供给用户。 这里记录一下打包过程。 1&#xff1a;首先获取打包插件&#xff0c;如果你的VS已经安装&#xff0c;忽略此步骤。 点击 工具->扩展和更新&#xff0c;选择联机&#xff0c;搜索installer&#x…...

【python实现向日葵控制软件功能】手机远程控制电脑

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人_python人工智能视觉&#xff08;opencv&#xff09;从入门到实战,前端,微信小程序-CSDN博客 最新的uniapp毕业设计专栏也放在下方了&#xff1a; https://blog.csdn.net/lbcy…...

手机系统录屏怎么录?有什么其他录制方法和注意事项?

手机系统录屏是一种很方便的方式&#xff0c;可以用于录制游戏、教程视频&#xff0c;或者是跟别人分享一些操作。在不同的手机系统中&#xff0c;录制方法可能会有所不同&#xff0c;以下是一些通用的步骤分享以及其他录制工具的分享&#xff0c;有需要的小伙伴们快来看一看吧…...

记录一个编译TubeTK时的报错:at_check问题

在使用如下命令安装TubeTK的cuda_nms时&#xff0c;报了一个错误&#xff0c;记录一下这个错误和解决办法 (base) redmeryredmery:~/Desktop/MOT/TubeTK/post_processing/nms$ python setup.py build_ext --inplace因为这个命令是在/home/redmery/Desktop/MOT/TubeTK/install/…...

k8s v1.27.4二进制部署记录

记录二进制部署过程 #!/bin/bash#升级内核 update_kernel() {rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgyum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpmyum --disablerepo"*" --enablerepo"elrepo-kernel&q…...

C# API 文档注释规范

C# API 文档注释规范 1. 命名空间注释(namespace)2. summary3. remarks and para4. param5. returns6. example and code7. exception8. typeparam 最近在开发工作中需要实现 API 帮助文档&#xff0c;如果根据所写的代码直接重写 API 帮助文档将会是意见非常大的工作量&#x…...

分类预测 | Matlab实现基于TSOA-CNN-GRU-Attention的数据分类预测

分类预测 | Matlab实现基于TSOA-CNN-GRU-Attention的数据分类预测 目录 分类预测 | Matlab实现基于TSOA-CNN-GRU-Attention的数据分类预测效果一览基本介绍研究内容程序设计参考资料 效果一览 基本介绍 Matlab实现分类预测 | Matlab实现基于TSOA-CNN-GRU-Attention的数据分类预…...

《深度剖析K8s》学习笔记

一、容器技术 1.从进程说起 a. 概述 进程&#xff1a;数据和状态的综合 容器技术的核心&#xff1a;约束和修改进程的动态表现&#xff0c;创造出边界&#xff08;Cgroup&#xff1a;约束/namespace&#xff1a;进程视图&#xff09; 启动容器例子&#xff1a; docker ru…...

神经网络基础-神经网络补充概念-49-adam优化算法

概念 Adam&#xff08;Adaptive Moment Estimation&#xff09;是一种优化算法&#xff0c;结合了动量梯度下降法和RMSProp的优点&#xff0c;用于在训练神经网络等深度学习模型时自适应地调整学习率。Adam算法在深度学习中广泛应用&#xff0c;通常能够加速收敛并提高模型性能…...

Java:正则表达式书写规则及相关案例:检验QQ号码,校验手机号码,邮箱格式,当前时间

正则表达式 目标:体验一下使用正则表达式来校验数据格式的合法性。需求:校验QQ号码是否正确&#xff0c;要求全部是数字&#xff0c;长度是(6-20&#xff09;之间&#xff0c;不能以0开头 首先用自己编写的程序判断QQ号码是否正确 public static void main(String[] args) {Sy…...

图数据库_Neo4j_Centos7.9安装Neo4j社区版3.5.4_基于jdk1.8---Neo4j图数据库工作笔记0011

首先上传安装包,到opt/soft目录 然后看一下jdk安装的是什么版本的,因为在neo4j 4以后就必须要用jdk11 以上的版本,我这里还用着jdk1.8 所以 我这里用3.5.4的版本 关于下载地址: https://dist.neo4j.org/neo4j-community-3.5.4-unix.tar.gz 然后再去解压到/opt/module目录下 …...

使用Rust编写的一款使用遗传算法、神经网络、WASM技术的模拟生物进化的程序

模拟生物进化程序 Github地址&#xff1a;FishLife 期待各位的star✨✨✨ 本项目是一个模拟生物进化的程序&#xff0c;利用遗传算法、神经网络技术对鱼的眼睛和大脑进行模拟。该项目是使用 Rust 语言编写的&#xff0c;并编译为 WebAssembly (Wasm) 格式&#xff0c;使其可以…...

Harness设计——Anthropic实战:规划器、生成器、评估器三角色协作详解

Harness 设计是实现智能体编码前沿性能的关键。本文介绍了Anhtropic如何推动 Claude 在前端设计和长期自主软件开发方面更进一步。 有两个相互关联的问题: 让 AI Agent 生成高质量的前端设计。 让它无需人工干预就能构建完整的应用程序。 这项工作源于我们早期在前端设计技能…...

仅需6GB显存!GPT-SoVITS部署指南:低成本实现高质量语音合成

仅需6GB显存&#xff01;GPT-SoVITS部署指南&#xff1a;低成本实现高质量语音合成 1. 项目介绍与核心优势 GPT-SoVITS 是一个革命性的开源语音合成工具&#xff0c;它巧妙结合了GPT的语言生成能力和SoVITS的语音转换技术。这个项目最大的亮点在于&#xff0c;它能够用极少的…...

毕设程序java高校辅导员工作管理系统 基于SpringBoot的高校学生事务协同管理平台设计与实现 基于Java的高校学工一体化服务系统开发与应用

毕设程序java高校辅导员工作管理系统95jjf711 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。在高等教育持续扩张的当下&#xff0c;辅导员承担着学生日常管理和服务的重要职责&…...

显卡性能调优:从系统瓶颈到高效GPU资源分配的完整指南

显卡性能调优&#xff1a;从系统瓶颈到高效GPU资源分配的完整指南 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas…...

为什么你的脑影像分析总出错?聊聊AC-PC线标准化背后的原理与MIPAV实现

为什么你的脑影像分析总出错&#xff1f;AC-PC线标准化原理与MIPAV实战解析 在神经影像研究的实验室里&#xff0c;最常听到的抱怨莫过于"同样的分析方法&#xff0c;这次的结果怎么完全对不上&#xff1f;"。就像用不同比例尺的地图导航会迷路一样&#xff0c;忽略A…...

IDEA+Tomcat8.5实战:5步搞定Shiro550漏洞复现环境(附JDK1.7多版本切换技巧)

IDEATomcat 8.5实战&#xff1a;5步构建Shiro550漏洞研究环境与多版本JDK管理技巧 当你第一次尝试复现Shiro550漏洞时&#xff0c;是否曾被各种环境配置问题困扰&#xff1f;从JDK版本冲突到Tomcat端口占用&#xff0c;再到war包部署失败&#xff0c;每一个环节都可能成为新手研…...

ResNet残差连接实战:为什么你的深层网络总是不收敛?

ResNet残差连接实战&#xff1a;为什么你的深层网络总是不收敛&#xff1f; 训练深度神经网络时&#xff0c;最令人沮丧的莫过于看着损失函数在迭代中纹丝不动&#xff0c;或是验证集指标像过山车一样上下波动。我曾在一个图像分类项目中使用标准CNN架构&#xff0c;当层数超过…...

Qwen3-0.6B-FP8与ComfyUI工作流结合:可视化AI应用搭建

Qwen3-0.6B-FP8与ComfyUI工作流结合&#xff1a;可视化AI应用搭建 最近在折腾AI应用的时候&#xff0c;我发现了一个挺有意思的组合&#xff1a;把轻量级的文本生成模型Qwen3-0.6B-FP8&#xff0c;接到ComfyUI这个可视化工作流工具里。听起来可能有点技术&#xff0c;但实际做…...

智能家居开发实战:用RxAndroidBle3实现多设备扫描与信号过滤(附完整Demo)

智能家居BLE开发进阶&#xff1a;RxAndroidBle3多设备扫描与动态过滤实战 在智能家居场景中&#xff0c;蓝牙低功耗&#xff08;BLE&#xff09;设备的高效扫描与筛选是构建稳定物联网系统的关键技术。本文将深入探讨如何利用RxAndroidBle3框架实现多设备并发扫描、动态信号过滤…...

保姆级教程:用FLUX.2-Klein-9B在ComfyUI中快速编辑人像照片

保姆级教程&#xff1a;用FLUX.2-Klein-9B在ComfyUI中快速编辑人像照片 1. 准备工作与环境搭建 在开始使用FLUX.2-Klein-9B进行人像编辑前&#xff0c;我们需要先准备好运行环境。这个模型虽然功能强大&#xff0c;但部署过程其实非常简单&#xff0c;跟着步骤走就能快速上手…...