民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)

2023-06-0515:31:34数据库教程Comments841 views字数 3977阅读模式

官方 MongoDB Compass

MongoDB Compass Community由MongoDB开发人员开发,这意味着更高的可靠性和兼容性。它为MongoDB提供GUI mongodb工具,以探索数据库交互;具有完整的CRUD功能并提供可视方式。借助内置模式可视化,用户可以分析文档并显示丰富的结构。为了监控服务器的负载,它提供了数据库操作的实时统计信息。就像MongoDB一样,Compass也有两个版本,一个是Enterprise(付费),社区可以免费使用。适用于Linux,Mac或Windows。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

查询

展示列表民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)特色:_按条件查询_民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)特色:转化为查询语言民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

聚合

特色:_可以可视化的添加pipleline中的Stage_民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

  • 索引民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)
  • Explain民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)
  • Schema民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)
  • 校验民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)

NoSQLBooster

NoSQLBooster是MongoDB CLI界面中非常流行的GUI工具。它正式名称为MongoBooster。NoSQLBooster是一个跨平台,它自带一些mongodb工具来管理数据库和监控服务器。这个Mongodb工具包括服务器监控工具,Visual Explain Plan,查询构建器,SQL查询,ES2017语法支持等。它有免费,个人和商业版本,当然,免费版本有一些功能限制。NoSQLBooster也可用于Windows,MacOS和Linux。支持 sql,免费版支持 CSV、JSON 导入,但不支持 CSV、JSON 导出。集成了 mongodump/mongorestore,支持监控,和查询优化。下载链接:https://nosqlbooster.com/downloads民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

Robot3T

Robo 3T前身是Robomongo。支持Windows,MacOS和Linux系统。Robo 3T 1.3为您提供了对MongoDB 4.0和SCRAM-SHA-256(升级的mongo shell)的支持,支持从MongoDB SRV连接字符串导入,以及许多其他修复和改进。大家也可以找到之前的Robomongo,完全免费的版本使用。下载地址:https://robomongo.org/download民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)早前的Robomongo民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

Vs Code plugin

对于喜欢超级轻量级的,以及vscode粉来说,MongoDB vscode插件可以考虑下:民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

基本使用 Java API

向你介绍下MongoDB提供的原生的JavaAPI;而大多数公司使用Spring框架,会使用Spring Data对MongoDB原生API的封装,比如JPA,MongoTemplate等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

MongoDB Driver

<!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.12.6</version>
</dependency>

代码测试

例子请参考 mongo-java-driver(http://mongodb.github.io/mongo-java-driver/3.12/driver/getting-started/quick-start/)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

    private static final Integer MONGO_PORT = 27017;

    private static final String MONGO_DB = "testdb";


    public static void main(String args[]) {
        try {
            // 连接到 mongodb 服务
            MongoClient mongoClient = new MongoClient(MONGO_HOST, MONGO_PORT);

            // 连接到数据库
            MongoDatabase mongoDatabase = mongoClient.getDatabase(MONGO_DB);
            System.out.println("Connect to database successfully");

            // 创建Collection
            mongoDatabase.createCollection("test");
            System.out.println("create collection");

            // 获取collection
            MongoCollection<Document> collection = mongoDatabase.getCollection("test");

            // 插入document
            Document doc = new Document("name", "MongoDB")
                    .append("type", "database")
                    .append("count", 1)
                    .append("info", new Document("x", 203).append("y", 102));
            collection.insertOne(doc);

            // 统计count
            System.out.println(collection.countDocuments());

            // query - first
            Document myDoc = collection.find().first();
            System.out.println(myDoc.toJson());

            // query - loop all
            MongoCursor<Document> cursor = collection.find().iterator();
            try {
                while (cursor.hasNext()) {
                    System.out.println(cursor.next().toJson());
                }
            } finally {
                cursor.close();
            }

        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
        }
    }

基本使用 Spring集成

本文为主要介绍Spring Data对MongoDB原生API的封装,比如Spring-data-mongo,MongoTemplate等。以及原生API和Spring data系列之间的关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

Spring Data 与 MongoDB

在初学使用者而言,常会分不清Spring-data-jpa, spring-data-mongo, springboot-data-mongo-starter以及mongo-driver之间的关联关系, 本节将带你理解它们之间的关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

Spring Data的层次结构

首先让我们回顾下Spring runtime体系:民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)Spring Data是基于Spring runtime体系的:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

下面这个图能够直观反映出它们之间的依赖关系,以及包中类之间的以来关系。民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

springboot-data-mongo层次结构

我们通过引入springboot-data-mongo-starter包来看它们之间的层次结构:民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

Mongodb+Java 用法

所以通过上面分析我们可以得到基于mongodb+Java的常见用法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html

使用方式及依赖包的引入
  • 引入mongodb-driver, 使用最原生的方式通过Java调用mongodb提供的Java driver;
  • 引入spring-data-mongo, 自行配置使用spring data 提供的对MongoDB的封装
    • 使用MongoTemplate 的方式
    • 使用MongoRespository 的方式
  • 引入spring-data-mongo-starter, 采用spring autoconfig机制自动装配,然后再使用MongoTemplate或者MongoRespository方式。

一些案例的参考

原生方式
  • 官方mongo-java-driver 例子 http://mongodb.github.io/mongo-java-driver/3.12/driver/getting-started/quick-start/
spring-data-mongo
  • 官方spring-data-mongodb 例子 https://spring.io/projects/spring-data-mongodb#samples民工哥 MongoDB 教程:MD 基本使用(工具、API、Spring 集成)
来源:https://www.pdai.tech/md/db/nosql-mongo/
mongo-x-usage-4.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/44744.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/44744.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定