SpringBoot集成SpringDataMongoDB -- 从docker安装到集成使用

5 篇文章 0 订阅
1 篇文章 0 订阅

关于SpringDataMongoDB的使用说明

docker安装MongoDB

1.1 获取docker镜像
	docker pull mongo
1.2 创建mongodb容器
	docker run --name  mongodemo  -p 27017:27017  -d mongo --auth
	如果加需要验证就加--auth,不需要验证,就去掉。默认mongodb是不使用用户认证
1.3 进入容器设置用户
	docker exec -it 容器id /bin/bash
	mongo
	use admin
	db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})   //创建用户,此用户创建成功,则后续操作都需要用户认证
	exit
或者直接进入admin
	docker exec -it ly-mongo mongo admin
	db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})   //创建用户,此用户创建成功,则后续操作都需要用户认证
	exit
1.4 测试
	mongo  宿主机ip/admin  -utest -p	如果端口不是27017,要在IP后面指定端口号

集成SpringDataMongoDB

1. 添加依赖
	<!-- SpringdataMongoDB的依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
2. application.xml中进行配置
	  data:
	    mongodb:
	      uri: mongodb://your_username:your_pwd@ip地址:27017/数据库名	### 注意,如果端口号为27017可以不写
3. 实体类中使用
	@Document(collection = "studio_mongo")
	public class XxxMongoEntity implements Serializable {
		@Id
		private ObjectId id;//可以将ObjectId改为String类型
	}
4. Dao实现
	@Component
	public class XxxxMongoServiceImpl implements XxxMongoService {
	
	    @Autowired
	    MongoTemplate mongoTemplate;
	
	    public void add(XxxMongo xxxMongo) {
	        xxxMongo.setId(IdWorker.getIdStr());
	        mongoTemplate.save(xxxMongo);
	    }
	
	    public List<StudioMongo> findByLoc() {
	        return null;
	    }
	
	}

遇到问题解决

问题:not authorized on test to execute command { $eval: \"return 1111\"
原因:用户权限不足
解决:给用户添加权限即可
	1. 新建一个角色,比如叫 sysadmin,需要先切换到admin库进行如下操作:
		> use admin
		switchedtodb admin
		> db.createRole({role:'sysadmin',roles:[],
		privileges:[
		{resource:{anyResource:true},actions:['anyAction']}
		]})
	2. 然后,新建一个用户,使用这个角色,注意,这个角色的db是admin,操作如下:
	 	> use xxx
		switchedtodb xxx
		> db.createUser({
		user:'xxxx',
		pwd:'xxxxxxx',
		roles:[
		{role:'sysadmin',db:'admin'}
		]})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值