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

2023-11-13

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术语/概念 解释说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,mongodb不支持
primary key primary 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();
    }
}

返回数据:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB图形化工具的使用与java操作 的相关文章

随机推荐

  • 计算机网络(互联网组成、计算机通信方式、电路、报文、分组交换、主要性能指标)

    互联网的组成 边缘部分 由主机组成 这部分是用户直接使用的 核心部分 由网络和路由器组成 边缘部分 计算机之间通信 主机A和主机B进行通信 实际上是指 主机A的某个进程和主机B上的另一个进程进行通信 或简称为 计算机之间通信 计算机的进程
  • Python数据库操作手册

    数据库的操作在现在的Python里面已经变得十分的好用 有了一套API标准 下面的就是讲讲如何的去使用这套框架定义 此框架包含以下部分 模块接口 连接对象 游标对象 DBI辅助对象 数据类型与定义 如何实现的提示 从1 0到2 0的变化 例
  • APP上架需要的准备和流程

    一 上架iOS应用市场前的准备 1 选择适合自己的苹果开发者账号 1 个人账号 Individual 费用99美金一年 该账号在App Store销售者只能显示个人的ID 比如zhitian zhang 单人使用 个人账号只能有一个开发者
  • 一篇学会Swagger2(集成knife4j)

    目录 一 Swagger2简介 1 前言 2 Open API是什么 3 Swagger简介 3 1 特性 3 2 组件 二 knife4j 三 内容 3 1 依赖 3 2 配置类 3 3 Controller层添加注解 3 4 测试 sw
  • Apache Tomcat如何高并发处理请求

    介绍 作为常用的http协议服务器 tomcat应用非常广泛 tomcat也是遵循Servelt协议的 Servelt协议可以让服务器与真实服务逻辑代码进行解耦 各自只需要关注Servlet协议即可 对于tomcat是如何作为一个高性能的服
  • make,makefile,make install,make clean,cmake,gcc(转)

    1 gcc是GNU Compiler Collection 就是GNU编译器套件 也可以简单认为是编译器 它可以编译很多种编程语言 括C C Objective C Fortran Java等等 2 当你的程序只有一个源文件时 直接就可以用
  • Mail command failed: 502 Invalid paramenters错误

    from要配置自己qq响应的邮箱
  • vue安装了babel-polyfill ie依旧无法适配

    上一篇写到安装babel polyfill 插件来适配ie浏览器 链接如下 https blog csdn net qq 43469899 article details 102969776 有些小伙伴会发现尽管你是配好了我上一篇的那些部分
  • HightCharts双y轴+x时间轴

    公司布置完成图表 使用HightCharts显示 根据时间显示探头点数据 由于探头分为两种数据属性 一种是温度 单位 一种是湿度 单位 所以需要使用双纵轴显示 加上横轴使用date属性 需要对date进行formart 上代码 myCont
  • linux修改日期时间

    Linux机器上的时间比较复杂 有各式各样的时钟和选项等等 机器里有两个时钟 硬件时钟从根本上讲是CMOS时钟 而系统时钟是由内核维护的 1 修改硬件时钟的可以使用下面的方法 你就可以用它来随时更新你的硬件时间 命令为 hwclock ad
  • 计算机组成原理笔记

    文章目录 一 计算机的基本组成 二 总线 2 1 总线控制 三 主存储器 3 1 RAM 3 2 存储器与CPU相连 3 3 存储器校验 3 4 提高存储器访问速度 3 5 cache 四 输入输出系统 4 1 I O接口 4 2 程序中断
  • 【狂神说Java】SpringBoo

    作者简介 CSDN内容合伙人 信息安全专业在校大学生 系列专栏 添砖加瓦 狂神说JAVA系列笔记 新人博主 欢迎点赞收藏关注 会回访 个人格言 舞台再大 你不上台 永远是个观众 平台再好 你不参与 永远是局外人 能力再大 你不行动 只能看别
  • Flutter Dialog模态框使用及自定义Dialog

    自定义dialog插件 用来弹出确认取消提示框 或者自定义模态框 自定义类 import package flutter material dart class dialogUtil 通用显示确定按钮框 static showConfirm
  • UART串口协议

    通用异步收发传输器 Universal Asynchronous Receiver Transmitter 通常称作UATR 是一种异步收发传输器 将数据由串行通信与并行通信间做传输转换 作为并行输入称为串行输出的芯片 UART是一种通用串
  • Python3.8的下载与安装

    一 介绍 Python由荷兰数学和计算机科学研究学会的吉多 范罗苏姆 于1990 年代初设计 作为一门叫做ABC语言的替代品 Python提供了高效的高级数据结构 还能简单有效地面向对象编程 Python语法和动态类型 以及解释型语言的本质
  • SQL中的and、or

    在sql查询语句中长用到and和or 它们在用的时候有些需要注意的地方 不管在一项表达式中有多少个and或or 它是将前一个表达式看作一项 and与or后的所有表达式看做一项 and的前后都为真的时候才为真 取交集 or有一个为真 即为真
  • 嵌入式设备和固件中的自动漏洞检测(三):静态分析技术

    原文链接 Automatic Vulnerability Detection in Embedded Devices and Firmware Survey and Layered Taxonomies ACM Computing Surv
  • 高等数值计算方法学习笔记第4章第一部分【数值积分(数值微分)】

    高等数值计算方法学习笔记第4章第一部分 数值积分 数值微分 一 数值积分概论 1 数值求积的基本思想 牛 莱公式找不到原函数 用矩形近似 2 代数精度的概念 1 上述四个公式的代数精度 梯形 左中右矩形公式 2 利用代数精度的概念构造求积公
  • Chatgpt登陆后一直在转圈请求429错误的解决办法

    Chatgpt登陆后一直在转圈请求429错误的解决办法 如果您使用ChatGPT登陆后遇到了持续转圈或请求429错误 可能是由于请求次数过多导致的限制 为了解决这个问题 可以尝试以下几个方法 等待一段时间后再次尝试登陆 由于请求次数过多 C
  • MongoDB图形化工具的使用与java操作

    MongoDB图形化工具的使用与java操作 MongoDB Compass Community 下载 安装 使用 介绍 MongoDB概念 新建数据库 删除数据库 新建集合 删除集合 新增文档 删除文档 修改文档 查询文档 Java操作m