MongoDB图形化工具的使用与java操作

MongoDB Compass Community

下载

要从具有图形用户界面的MongoDB开始,MongoDB Compass
Community是最好的方法之一。MongoDB Compass
Community由MongoDB开发人员开发,这意味着更高的可靠性和兼容性。它为MongoDB提供GUI
mongodb工具,以探索数据库交互;具有完整的CRUD功能并提供可视方式。借助内置模式可视化,用户可以分析文档并显示丰富的结构。为了监控服务器的负载,它提供了数据库操作的实时统计信息。就像MongoDB一样,Compass也有两个版本,一个是Enterprise(付费),社区可以免费使用。适用于Linux,Mac或Windows。进入官网的下载页面,下载相应的版本。

下载链接:https://www.mongodb.com/download-center/compass?jmp=hero

安装

1)打开下载好的.msi安装包,如图所示,点击next进行安装。

2)选择安装磁盘位置。

3)安装完成。

4)打开安装目录,运行可视化工具。

5)打开服务器的mongodb配置文件,修改绑定ip地址为0.0.0.0。

命令:vi /etc/mongod.conf


6)使用MongoDB Compass Community远程连接,填入相应的ip与port。最

后点击连接。

使用

介绍

连接后的界面如图所示,列出来的为现存的数据库,默认已有admin,config与local数据库。

点击对应的数据库可以查看该数据库信息,列出该数据库所有的集合。下图所示为lamarsan数据库中的集合------lamarsan。该界面显示了lamarsan集合的平均文档大小,总大小,索引数量以及索引大小等信息。

点击对应的集合可以查看该集合信息,如图所示,该集合内只有一个文档。同时,在该页面可以进行文档的增删改查。

MongoDB概念

下面列出了mongodb与mysql之间的关系比较。

SQL术语/概念MongoDB术语/概念解释说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接,mongodb不支持
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

新建数据库

进入首页,点击CREAWTE
DATABASE。填入相应的数据库信息和集合信息即可,Capped Collection为固定大小的集合。

删除数据库

点击数据库名后的垃圾图标可进行删除,删除时输入数据库名字,即lamar。

新建集合

进入数据库页面,点击集合名字右边的+号或者CREATE COLLECTION,填入相应的集合信息即可,Capped Collection为固定大小的集合。

删除集合

点击集合名后的垃圾图标可进行删除,删除时输入集合名字,即lamar。

新增文档

进入集合页面,点击INSERT
DOCUMENT,像JSON一样输入键值对,使用回车换行,点击INSERT即可插入。

删除文档

进入集合页面,点击文档右边的垃圾桶标志,即可删除。

修改文档

进入集合页面,点击文档右边的笔标志,即可进行对文档的修改。

加号为在当前域后加入新域,×为删除当前域。

查询文档

进入集合页面,在FIELTER右边的空框框中输入查询条件:{title:\"MongoDB\",num:{\$lte:100}}

意思是查询title为"MongoDB",且num小于等于100的文档。点击FIND即可查询。

除了上述基本功能外,输入查询语句后,点击右边的…可以获得更多功能,如图所示。

1)查询语句转换图,可以将查询语句转换为java,python等语言,包括需要导入的包,并提供代码复制功能。

2)查询的历史记录。

Java操作mongodb

添加依赖

<dependency>
    <artifactId>baseservice-common-mongodb</artifactId>
    <groupId>com.ccw.baseservices</groupId>
    <version>1.0.2-RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>

添加配置

需要先创建mongodb的用户

spring.data.mongodb.host=ip
spring.data.mongodb.port=27017
spring.data.mongodb.username=root
spring.data.mongodb.password=******
spring.data.mongodb.database=lamarsan

编写配置类

package com.lamarsan.provider.config;

import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

import java.util.ArrayList;
import java.util.List;

/**
 * className: MongDBConf
 * description: TODO
 *
 * @author hasee
 * @version 1.0
 * @date 2019/7/17 17:37
 */
@Configuration
@PropertySource(value = "classpath:application.properties")   //配置文件
@EnableMongoRepositories(basePackages = "com.lamarsan.provider.mongo.dao")   //dao层
public class MongDBConf {
    @Value("${spring.data.mongodb.username}")
    private String username;
    @Value("${spring.data.mongodb.password}")
    private String password;
    @Value("${spring.data.mongodb.database}")
    private String database;
    @Value("${spring.data.mongodb.host}")
    private String host;
    @Value("${spring.data.mongodb.port}")
    private String port;

    @Bean
    public MongoClient mongoClient(){
        String username = this.username;
        String password = this.password;
        String database = this.database;
        String host = this.host;
        Integer port = Integer.valueOf(this.port);
        ServerAddress serverAddress = new ServerAddress(host,port);
        MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray());
        List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>();
        mongoCredentialList.add(mongoCredential);

        return new MongoClient(serverAddress,mongoCredentialList);
    }

    @Bean
    public MongoDbFactory mongoDbFactory(){
        String database = this.database;
        return new SimpleMongoDbFactory(mongoClient(),database);
    }

    @Bean
    public MongoTemplate mongoTemplate(){

        MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory());
        return mongoTemplate;
    }
}

编写实体类

字段加上@Field注释,文档使用@Document注释:

package com.lamarsan.provider.mongo;

import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;

/**
 * className: SongRecord
 * description: TODO
 *
 * @author hasee
 * @version 1.0
 * @date 2019/7/17 16:59
 */
@Data
@Document(collection = "student_b_song_record")
public class SongRecord implements Serializable {
    //用户ID
    @Field("user_id")
    private String userId;
    //歌曲ID
    @Field("song_id")
    private String songId;
    //音频key
    @Field("audio_key")
    private String audioKey;
}

编写dao层

@Repository
public interface SongRepository extends MongoRepository<SongRecord, String> {
}

编写接口类

public interface SongService {
    List<SongRecord> findAllSong();
}

实现接口

@Service
public class SongServiceImpl implements SongService {
    @Autowired
    SongRepository songRepository;

    public List<SongRecord> findAllSong() {
        return songRepository.findAll();
    }
}

调用接口

@RestController
@CrossOrigin
@RequestMapping("/song")
public class SongController {
    @Reference(lazy = true)
    SongService songService;

    @PostMapping("/allSong")
    @ResponseBody
    public List<SongRecord> getAllPerson(){
        System.out.println(songService);
        return songService.findAllSong();
    }
}

返回数据:

使用图形化工具查看是否正确:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值