民工兄弟MongoDB教程:MD基本使用(工具、API、Spring集成)
官方MongoDB Compass
MongoDB Compass社区由MongoDB开发者开发,这意味着更高的可靠性和兼容性。它为MongoDB提供GUI mongodb工具来探索数据库交互;具有完整的CRUD功能并提供可视化方式。通过内置的模式可视化,用户可以分析文档并显示丰富的结构。为了监控服务器负载,它提供数据库操作的实时统计。和 MongoDB 一样,Compass 也有两个版本,一种是 Enterprise(付费),可以免费供社区使用。适用于 Linux、Mac 或 Windows。 ?



NoSQLBooster
NoSQLBooster是MongoDB CLI界面中非常流行的GUI工具。它的正式名称是 MongoBooster。 NoSQLBooster是一个跨平台的,附带一些mongodb工具来管理数据库和监控服务器。该 Mongodb 工具包括服务器监控工具、可视化解释计划、查询生成器、SQL 查询、ES2017 语法支持等。它有免费版、个人版和商业版,当然免费版有一些功能限制。 NoSQLBooster 还适用于 Windows、MacOS 和 Linux。支持sql。免费版本支持 CSV 和 JSON 导入,但不支持 CSV 和 JSON 导出。集成mongodump/mongorestore,支持监控和查询优化。下载链接:https://nosqlbooster.com/downloads
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原Robomongo
Vs Code插件
喜欢超轻量级和vscode爱好者的可以考虑MongoDB vscode插件:使用Java API
下面我给大家介绍一下MongoDB提供的原生JavaAPI;而大多数使用Spring框架的公司都会使用Spring Data来封装MongoDB原生API,比如JPA、MongoTemplate等。
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(http:// /mongodb.github.io/mongo-java-driver/3.12/driver/getting-started/quick-start/ )
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数据集的关系。
Spring Data 与 MongoDB
新手用户常常无法区分 Spring-data-jpa、spring-data-mongo、springboot-data-mongo-starter 和 mongo-driver 之间的关系。本节将帮助您理解它们之间的关系。
Spring Data的层次结构
首先我们回顾一下Spring运行时系统: Spring Data是基于Spring运行时系统的:
下图可以直观的体现出它们之间的依赖关系以及依赖关系包中类之间的关系。那么
springboot-data-mongo层次结构
我们通过引入包springboot-data-mongo-starter
来看看它们之间的层次结构:♼通过上面的分析,我们可以得到基于mongodb+Java的常用用法:
依赖包的使用和介绍
- 介绍
mongodb驱动
,使用最原生的方式通过Java驱动从mon调用gudb Java;引入spring-data-mongo
,并利用spring data提供的对MongoDB的封装自行配置- 用法
存储库
方法
- 用法
- 引入
弹簧数据- mongo-starts
,使用spring的autoconfig机制自动组装,然后使用MongoTemplate❀❓的
方式。
部分案例参考
原生方式
- 官方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
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。