• docker创建mongodb并且测试代码


    mongodb

    docker 安装mongodb-创建用户

     docker run -itd --name mongo -p 27017:27017 mongo --auth

    进入数据库添加密码

      docker exec -it mongo mongo admin
     
     # 创建一个名为 admin,密码为 123456 的用户。
     
     db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
     
     # 尝试使用上面创建的用户信息进行连接。
     
     db.auth('admin', '123456')
     使用这个账号连接navicat是可以正常使用的,但是连接java代码会报错
     
     org.springframework.data.mongodb.UncategorizedMongoDbException:
      Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='admin', source='cloud_iexe', password=<hidden>, mechanismProperties=<hidden>}; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='admin', source='cloud_iexe', password=<hidden>, mechanismProperties=<hidden>}
     

    于是我们百度了一下: -->创建新用户

     db.createUser(
          {
            user: "wenqiang",
            pwd: "1438438",
            roles: ["readWrite"]
          }
     )

    使用新用户进行登录并测试插入代码

     @Document(collection = "user")
     public class MongoUser implements Serializable {
         @Id
         private String id;
     
         @Field("user_name")
         private String userName=null;
     
         private String note=null;
     
         @Field("roles")
         private List<MongoRole> roleList=null;
     
         public String getId() {
             return id;
        }
     
         public void setId(String id) {
             this.id = id;
        }
     
         public String getUserName() {
             return userName;
        }
     
         public void setUserName(String userName) {
             this.userName = userName;
        }
     
         public String getNote() {
             return note;
        }
     
         public void setNote(String note) {
             this.note = note;
        }
     
         public List<MongoRole> getRoleList() {
             return roleList;
        }
     
         public void setRoleList(List<MongoRole> roleList) {
             this.roleList = roleList;
        }
     }
     

    db: 可以用通过template也可以用:

     public interface MongoDbUserRepository extends MongoRepository<MongoUser,String> {
     }
     
         public MongoUser saveUser(MongoUser mongoUser){
             MongoUser mongoUser1=mongoDbUserRepository.save(mongoUser);
             return mongoUser1;
        }

     

      @Autowired
         private MongoUserServiceImpl mongoUserService;
     
         @Test
         public void saveMongoUser(){
             MongoUser mongoUser=new MongoUser();
             mongoUser.setId("1");
             mongoUser.setUserName("亚索");
             mongoUser.setNote("托儿索");
             MongoRole mongoRole=new MongoRole();
             mongoRole.setId("3");
             mongoRole.setRoleName("中单");
             mongoRole.setNote("快乐风男");
             List<MongoRole> mongoRoleList=new ArrayList<MongoRole>();
             mongoRoleList.add(mongoRole);
             mongoUser.setRoleList(mongoRoleList);
             logger.info("新增用户{}",new Gson().toJson(mongoUserService.saveUser(mongoUser)));
        }

     

  • 相关阅读:
    POJ3714+最近点对
    HDU1632+半平面交
    POJ2402+模拟
    ASP.NET MVC几种找不到资源的问题解决办法
    ASP.NET MVC中的错误-友好的处理方法
    ASP.NET MVC 程序 报错“CS0012: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义”的解决办法
    【Reporting Services 报表开发】— 表达式
    【Reporting Services 报表开发】— 级联式参数设置
    【Reporting Services 报表开发】— 数据表的使用
    【Reporting Services 报表开发】— 矩阵的使用
  • 原文地址:https://www.cnblogs.com/q1359720840/p/mongodb.html
Copyright © 2020-2023  润新知