欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安装、使用mongodb踩过的坑

程序员文章站 2022-05-28 11:50:05
...

轻松一下

没用分布式架构之前,你只有一个问题:并发性能不足。用了分布式架构,多出了一堆问题:数据如何同步、主键如何产生、如何熔断、分布式事务如何处理……

使用mongodb踩过的坑

今天对安装,使用mongodb踩过的坑做一个记录,以免以后忘了。
1. 安装mongodb
学习新技术总是要学习最新版本的,我到官网上下载了mongodb-win32-x86_64-2008plus-ssl-3.6.3-signed.msi,结果安装总是卡住,一晚上都没有安装起,查资料推荐安装mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi。
2. 开启服务
最开始开启服务没有在cmd命令行添加“”,导致服务没有开启,正确的开启方式:

mongod –dbpath “C:\Program Files\MongoDB\Server\3.2\data” –logpath “C:\Program Files\MongoDB\Server\3.2\log\mongodb.log”

3.检查是否安装成功

访问:http://localhost:27017/

4.创建服务,方便开启
4.1创建服务

在mongodb/bin中执行:
mongod.exe –logpath “C:\Program Files\MongoDB\Server\3.2\log\mongodb.log” –logappend –dbpath “C:\Program Files\MongoDB\Server\3.2\data” –directoryperdb –serviceName MongoDB –install

安装、使用mongodb踩过的坑

4.2删除服务

如果不用mongodb服务,执行: sc delete MongoDB

4.3添加服务启动不起,不要慌

在mongodb安装路径下data文件中有两个文件一个mongod.lock和storage.bson,一般删除mongod.lock就可以了,如果服务错误代码100还不能解决,就把storage.bson一起删掉再启动就可以了!

5.代码验证(spring boot)
5.1 在application.properties配置文件中添加mongodb的配置:

mongodb
spring.data.mongodb.uri=mongodb://root(userName):root(password)@localhost(ip地址):27017(端口号)/gis(collections/数据库)
spring.data.mongodb.uri=mongodb://localhost:27017/test //默认的时候直接使用

5.1:创建实体类

public class User implements Serializable {
    private static final long serialVersionUID = 1L;
    private Long id;
    private String userName;
    private String passWord;
    private String email;
    private String nickName;
    private String regTime;

5.2 mongodb的接口

public interface UserMongoDao {
    void saveUser(User user);
    User findUserByUserName(String userName);
    void updateUser(User user);
    void deleteUserById(Long id);
}

5.3 mongodb的dao层

package com.api.allApi.dao.mongo;

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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;

import com.api.allApi.entity.User;

@Component
public class UserMongoDaoImp implements UserMongoDao {

    @Autowired
    private MongoTemplate mongoTemplate;

    /**
     * 创建对象
     * @param user
     */
    @Override
    public void saveUser(User user) {
        mongoTemplate.save(user);
    }

    /**
     * 根据用户名查询对象
     * @param userName
     * @return
     */
    @Override
    public User findUserByUserName(String userName) {
        Query query=new Query(Criteria.where("userName").is(userName));
        User user =  mongoTemplate.findOne(query , User.class);
        return user;
    }
 }

5.4.测试

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import com.api.allApi.dao.mongo.UserMongoDao;
import com.api.allApi.entity.User;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MongoDBTest {
    @Autowired
    private UserMongoDao userMongoDao;
    @Test
    public void saveUser() {
        User user = new User();
        user.setEmail("aaa@qq.com");
        user.setId((long) 10);
        user.setNickName("杰");
        user.setPassWord("89h");
        user.setUserName("bala杰");
        userMongoDao.saveUser(user);
    }
    @Test
    public void queryUserByName() {
        User user = userMongoDao.findUserByUserName("bala杰");
        System.out.println(user);
    }
}

输出结果:

User [id=10, userName=bala杰, passWord=89h, aaa@qq.com, nickName=杰, regTime=null]

测试mongodb能用,之后还会深入研究一下mongodb在python的应用和java应用中的注意事项和日志,积少成多,今天的坑到此结束了,okok!!

严肃一下!安装、使用mongodb踩过的坑

1.《国家地理》里说地球上最深的地方在太平洋的马里亚纳海沟,2016年拍了一组照片回来。最近科学家研究这些照片,发现里面有一个透明的东西,不知道是什么。最初以为那是某种未知的生物,后来确认了:那是一个塑料袋。
2.千万别上瘾只想去解决那些困难的问题。如果那些问题本身就是错的,你会浪费时间;如果你解决不了,也会浪费时间;