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操作 的相关文章

  • 如果测试用例失败,Selenium Web 驱动程序无法关闭 Firefox 实例

    我各位 我正在使用 junit 和 selenium web 驱动程序 2 28 问题是 如果我运行成功的测试用例 Web 驱动器能够关闭 Firefox 实例 但是当测试用例失败时 Selenium Web 驱动器无法关闭 Firefox
  • 如何将 Java 赋值表达式转换为 Kotlin

    java中的一些东西就像 int a 1 b 2 c 1 if a b c System out print true 现在它应该转换为 kotlin 就像 var a Int 1 var b Int 2 var c Int 1 if a
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • 限制号mongodb 输入中的行数

    如何限制数量 在kettle中使用的mongodb输入转换中检索到的行数 我尝试在 mongodb 输入查询中使用以下查询 但它们都不起作用 查询 限制 10 或 limit 10 请让我知道我哪里出错了 谢谢 迪普蒂 有几个查询修改操作符
  • 一种使用 Java Robot API 和 Selenium WebDriver by Java 进行文件上传的解决方案

    我看到很多人在使用 Selenium WebDriver 的测试环境中上传文件时遇到问题 我使用 selenium WebDriver 和 java 也遇到了同样的问题 我终于找到了解决方案 所以我将其发布在这里希望对其他人有所帮助 当我需
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • Java直接内存:在自定义类中使用sun.misc.Cleaner

    在 Java 中 NIO 直接缓冲区分配的内存通过以下方式释放 sun misc Cleaner实例 一些比对象终结更有效的特殊幻像引用 这种清洁器机制是否仅针对直接缓冲区子类硬编码在 JVM 中 或者是否也可以在自定义组件中使用清洁器 例
  • Keycloak - 自定义 SPI 未出现在列表中

    我为我的 keycloak 服务器制作了一个自定义 SPI 现在我必须在管理控制台上配置它 我将 SPI 添加为模块 并手动安装 因此我将其放在 module package name main 中 并包含 module xml 我还将其放
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐

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

    互联网的组成 边缘部分 由主机组成 这部分是用户直接使用的 核心部分 由网络和路由器组成 边缘部分 计算机之间通信 主机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