官网下载 MongoDBmongodb官网下载后解压,配置文件# 数据存储目录 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官网下载 momgoshmongosh官网下载启动mongodb,整合springmaven 依赖!-- mongoDB--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-mongodb/artifactIdversion3.0.0/versionscopecompile/scope/dependencyyml配置mongodb:database:testdb# uri: mongodb://localhost:27017/testdbusername:appuserpassword:App123# 必须是adminauthentication-database:testdbhost:localhost:27017port:27017启动项目配置时,必须使得用户有操作databasetestdb数据库的权限 ,如果没权限则后需得赋予权限;另一个authentication-database: testdb 即用户在testdb能查到,否则就会提示未授权简单的CRUD/** * className: MongoDbController * author: lcy * date: 2026/4/17 9:07 * Version: 1.0 * description: */RestControllerRequestMapping(/Mongo)publicclassMongoDbController{AutowiredprivateMongoTemplatemongoTemplate;PostMapping(/save)publicFruitaddMongoDbData(RequestBodyFruitfruit){FruitinsertmongoTemplate.insert(fruit);returninsert;}PostMapping(/saveBatch)publicListFruitaddBatchMongoDbData(RequestBodyListFruitfruits){ListFruitfruitListmongoTemplate.insert(fruits,fruitList).stream().toList();returnfruitList;}GetMapping(/selectOne)publicFruitgetOneMongoDbData(StringserialNumber){QueryquerynewQuery();query.addCriteria(Criteria.where(serialNumber).is(serialNumber));ListFruitfruitsmongoTemplate.find(query,Fruit.class);if(!CollectionUtils.isEmpty(fruits)){returnfruits.stream().findFirst().get();}returnnull;}GetMapping(/selectAll)publicListFruitgetAllMongoDbData(StringcollectionName){ListFruitfruitsmongoTemplate.find(newQuery(),Fruit.class,collectionName);returnfruits;}GetMapping(/selectOne2)publicFruitgetOneMongoDbData2(StringserialNumber){booleanbmongoTemplate.collectionExists(fruitList);booleanb1mongoTemplate.collectionExists(Fruit.class);// 获取Fruit 类名,底层还是Stringif(b){QueryquerynewQuery();query.addCriteria(Criteria.where(serialNumber).is(serialNumber));ListFruitfruitsmongoTemplate.find(query,Fruit.class,fruitList);if(!CollectionUtils.isEmpty(fruits)){returnfruits.stream().findFirst().get();}}returnnull;}DeleteMapping(/removeFruit)publicLongremoveDataBySth(StringfruitName){QueryquerynewQuery();query.addCriteria(Criteria.where(fruitName).is(fruitName));DeleteResultdeleteResultmongoTemplate.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}一般是配置文件 数据库跟用户 相关的配置有问题,请核对