news 2026/4/24 2:46:09

MongoDB--Spring

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MongoDB--Spring

官网下载 MongoDB


mongodb官网

下载后解压,配置文件

# 数据存储目录 storage: dbPath: D:\mongodb8\data\db # 日志配置 systemLog: destination: file path: D:\mongodb8\log\mongod.log logAppend: true # 网络配置 net: port: 27017 bindIp: 127.0.0.1 # 新增:启用身份验证 security: authorization: enabled

官网下载 momgosh

mongosh官网下载

启动mongodb,整合spring

maven 依赖

<!-- mongoDB--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId><version>3.0.0</version><scope>compile</scope></dependency>

yml配置

mongodb:database:testdb# uri: mongodb://localhost:27017/testdbusername:appuserpassword:App@123# 必须是adminauthentication-database:testdbhost:localhost:27017port:27017

启动项目配置时,必须使得用户有操作database=testdb数据库的权限 ,如果没权限则后需得赋予权限;
另一个authentication-database: testdb 即用户在testdb能查到,否则就会提示未授权

简单的CRUD

/** * @className: MongoDbController * @author: lcy * @date: 2026/4/17 9:07 * @Version: 1.0 * @description: */@RestController@RequestMapping("/Mongo")publicclassMongoDbController{@AutowiredprivateMongoTemplatemongoTemplate;@PostMapping("/save")publicFruitaddMongoDbData(@RequestBodyFruitfruit){Fruitinsert=mongoTemplate.insert(fruit);returninsert;}@PostMapping("/saveBatch")publicList<Fruit>addBatchMongoDbData(@RequestBodyList<Fruit>fruits){List<Fruit>fruitList=mongoTemplate.insert(fruits,"fruitList").stream().toList();returnfruitList;}@GetMapping("/selectOne")publicFruitgetOneMongoDbData(StringserialNumber){Queryquery=newQuery();query.addCriteria(Criteria.where("serialNumber").is(serialNumber));List<Fruit>fruits=mongoTemplate.find(query,Fruit.class);if(!CollectionUtils.isEmpty(fruits)){returnfruits.stream().findFirst().get();}returnnull;}@GetMapping("/selectAll")publicList<Fruit>getAllMongoDbData(StringcollectionName){List<Fruit>fruits=mongoTemplate.find(newQuery(),Fruit.class,collectionName);returnfruits;}@GetMapping("/selectOne2")publicFruitgetOneMongoDbData2(StringserialNumber){booleanb=mongoTemplate.collectionExists("fruitList");booleanb1=mongoTemplate.collectionExists(Fruit.class);// 获取Fruit 类名,底层还是Stringif(b){Queryquery=newQuery();query.addCriteria(Criteria.where("serialNumber").is(serialNumber));List<Fruit>fruits=mongoTemplate.find(query,Fruit.class,"fruitList");if(!CollectionUtils.isEmpty(fruits)){returnfruits.stream().findFirst().get();}}returnnull;}@DeleteMapping("/removeFruit")publicLongremoveDataBySth(StringfruitName){Queryquery=newQuery();query.addCriteria(Criteria.where("fruitName").is(fruitName));DeleteResultdeleteResult=mongoTemplate.remove(query,"fruit");if(deleteResult.wasAcknowledged()){returndeleteResult.getDeletedCount();}return0L;}@DeleteMapping("/del/collection")publicvoiddelCollectionData(StringcollectionName){mongoTemplate.dropCollection(collectionName);}}
没有权限报错
[dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 13 (Unauthorized): 'not authorized on gavin to execute command { insert: "fruit", ordered: true, $db: "gavin", lsid: { id: UUID("5cc08927-d5ff-4fe5-a39f-c9037991cd31") } }' on server localhost:27017. The full response is {"ok": 0.0, "errmsg": "not authorized on gavin to execute command { insert: \"fruit\", ordered: true, $db: \"gavin\", lsid: { id: UUID(\"5cc08927-d5ff-4fe5-a39f-c9037991cd31\") } }", "code": 13, "codeName": "Unauthorized"}] with root cause com.mongodb.MongoCommandException: Command failed with error 13 (Unauthorized): 'not authorized on gavin to execute command { insert: "fruit", ordered: true, $db: "gavin", lsid: { id: UUID("5cc08927-d5ff-4fe5-a39f-c9037991cd31") } }' on server localhost:27017. The full response is {"ok": 0.0, "errmsg": "not authorized on gavin to execute command { insert: \"fruit\", ordered: true, $db: \"gavin\", lsid: { id: UUID(\"5cc08927-d5ff-4fe5-a39f-c9037991cd31\") } }", "code": 13, "codeName": "Unauthorized"}

一般是配置文件 数据库跟用户 相关的配置有问题,请核对

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 1:21:13

[物理理论]全域场相互作用模型·阿雪心学·道场—东方仙盟天道量子

引言东方仙盟、阿雪心学、道场&#xff0c;是东方玄学体系中相互关联、辩证统一的三大核心范畴&#xff1a;东方仙盟是群体修持者的集合与共振共同体&#xff0c;阿雪心学是个体修心、调控自身场域的核心指导&#xff0c;道场是连接个体与集体、承载场能、实现场域交互的物理与…

作者头像 李华
网站建设 2026/4/24 2:46:07

5步掌握YimMenu游戏增强工具的完整安全指南

5步掌握YimMenu游戏增强工具的完整安全指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu 你是否在GTA …

作者头像 李华
网站建设 2026/4/18 20:00:29

城通网盘解析神器:告别限速,3秒获取高速直连地址

城通网盘解析神器&#xff1a;告别限速&#xff0c;3秒获取高速直连地址 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘几十KB/s的龟速下载而抓狂吗&#xff1f;当别人已经下载完几个G的…

作者头像 李华