springboot+Mongodb
如果springdata连接mongodb报如下错误
com.mongodb.MongoCommandException: Command failed with error 18 (Authenticat
那就是数据库账号权限的问题,跟代码没有什么关系。
win10本地安装的mongodb,使用springdata连接
另外,不论是docker安装,还是win10本地安装包安装,都要对配置文件进行修改。
win10在安装路径下mongodbbin的mongod.cfg文件中
bindIp这里需要修改,结果如下
net: port: 27017 bindIp: 0.0.0.0
开始整合,maven
org.springframework.boot spring-boot-starter-data-mongodb
这里注意,安装好mongodb后,尽管通过Navicat可以连接,但是使用代码存在bug,这里需要先创建用户和密码。
第一步:use test
第二步:
db.createUser(
{
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
)
spring:
data:
mongodb:
url: mongodb://root:123456@localhost:27017/test
我惊奇的发现好多相关文章,这里好多同学们这里居然是uri,我都不知道你们是怎么连上mongodb和居然不报错能跑起来的。
下一步,一个实体类,document绑定表名
import lombok.Data;
import lombok.ToString;
import org.springframework.data.mongodb.core.mapping.document;
import java.io.Serializable;
@Data
@ToString
@document(collection = "User")
public class MongoDBEntity implements Serializable {
private Integer id;
private String Name;
}
来个添加,引入一下实体类
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/mongo")
public class MongoDBController {
@Autowired
private MongoTemplate mongoTemplate;
@RequestMapping(value = "/addAll")
public R addAll() {
MongoDBEntity entity = new MongoDBEntity();
entity.setId(1);
entity.setName("name");
mongoTemplate.save(entity);
return R.ok().putData("list", entity);
}
}
然后用mongoTemplate的各种api就可以进行各种操作了。



