Mongodb手记——简介

Mongodb是一款面向集合、无模式的文档类数据库,支持多种操作系统及32位和64位系统。其核心特点是面向集合、无模式和文档形式的数据存储方式。Mongodb提供了丰富的功能,包括查询、插入和更新文档、索引管理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mongodb一款面向集合,无模式的文档类数据库。它里面的数据均以key-value的形式进行存储。

Mongodb的三个基本特征

面向集合:

在Mongodb中,数据被分组保存到一个个集合中,每一个集合在数据库中都有一个唯一的名字,在这个集合中可以包含无限多的文档。这样的集合就像是关系型数据库中的一个表,除了它是无模式的。


无模式:

这里的无模式是指数据库不会去关心在上面集合中的文档所存储的数据的结构。事实上,我们可以在同一个集合中存储不同数据结构的文档,只要我们自己处理的时候可以差别。


文档形式:

在Mongodb中,我们集合的存储形式是以key-value键值对的形式保存的,在这里key必须是一个string的形式,而value则可以是任意类型的数据结构,可以是数组,文档。我们把这种数据格式叫"BSON(Binary Serialized dOcument Notation)"


Mongdb的平台性

Mongodb可以支持linux ,windows, OS X等操作系统,并且同时相应的支持32位和64位的系统。但是要注意的一点是在32位的系统上数据库的数据总大小有一个2GB的限制。


Mongdb的基本操作结构

服务
Mongdb总的来说就是一个服务进程,它运行在系统上以服务的形式监听客户端接入并执行客户端发起的相应命令请求。

Mongodb的默认监听端口是27017,这个端口在启动之前可以自己配置,为了安全一般会重新配置。

客户端
通过这个端口连接到服务器,配置相应的认证安全参数,如果服务器端配置了用户认证。连接成功后,客户端可以执行一系列如:插入,查询,更新等操作。

数据存储
Mongodb把数据保存在一个文件当中(默认路径:/data/db/),另外通过内存映射的方式来进行数据管理以提高整体数据库的性能。

数据备份和集群
Mongodb支持配置自动复制,通过主从服务的方式实现数据的备份。同时还支持fail-over模式,这样通过集群+主从复制,可以实现服务的持续性。

Mongdb功能

  • 查询:可以通过其它的查询对像或是类似于SQL的条件语句where语法限制来进行文档的查询。而且查询支持排序、数量控制、返回数据总量,可以略过部分返回的文档集合,同时还可以返回文档的部分。
  • 插入和更新:支持插入新的文档,更新现有的文档。
  • 索引管理:在一个文档中可以在一个或是多个的key上面创建索引,包括子结构和删除索引等。
  • 通用命令:任何Mongodb的操作都可以通过特定的命令固定管道来进行管理。

### Java MongoDB 实验与开发指南 #### 1. Maven依赖配置 为了在Java项目中集成MongoDB,首先需要引入Maven依赖。以下是推荐使用的最新版本驱动程序: ```xml <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.8.0</version> </dependency> ``` 此版本支持最新的MongoDB功能并提供了更好的性能[^4]。 --- #### 2. 连接MongoDB实例 以下是一个简单的示例代码,用于连接本地运行的MongoDB服务,并打印所有数据库名称: ```java package com.example.mongo; import com.mongodb.MongoClient; import com.mongodb.client.MongoDatabase; import com.mongodb.MongoException; public class ConnectToMongo { public static void main(String[] args) { try { MongoClient mongoClient = new MongoClient("localhost", 27017); for (String dbName : mongoClient.listDatabaseNames()) { System.out.println("Database Name: " + dbName); } } catch (MongoException e) { e.printStackTrace(); } } } ``` 上述代码展示了如何通过`MongoClient`类建立与MongoDB服务器的连接,并列举所有可用的数据库名[^2]。 --- #### 3. 创建和访问数据库 可以通过调用`getDatabase()`方法来创建或访问现有数据库。如果目标数据库不存在,则会在首次写入数据时自动创建它。下面是一段演示代码: ```java MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase database = mongoClient.getDatabase("example_db"); System.out.println("Connected to Database: " + database.getName()); ``` 这段代码尝试连接到名为`example_db`的数据库。如果没有找到同名数据库,后续的操作将会触发其创建过程[^1]。 --- #### 4. 插入文档 向集合中插入一条记录可以借助`insertOne()`方法完成。这里提供了一个完整的例子,展示如何将JSON格式的数据存储MongoDB: ```java import org.bson.Document; // 假设已经建立了客户端连接以及选择了数据库 MongoDatabase database = mongoClient.getDatabase("example_db"); database.createCollection("users"); // 如果集合尚不存在则创建之 var collection = database.getCollection("users"); Document userDoc = new Document("name", "John Doe") .append("age", 30) .append("email", "john.doe@example.com"); collection.insertOne(userDoc); System.out.println("Inserted document into the 'users' collection."); ``` 以上脚本说明了怎样构建一个代表用户的BSON对象并将之保存进指定集合里[^3]。 --- #### 5. 查询文档 利用find()函数可以从集合检索符合条件的条目。如下所示是如何查找年龄大于等于30岁的用户列表: ```java FindIterable<Document> iterDoc = collection.find(eq("age", gte(30))); Iterator it = iterDoc.iterator(); while(it.hasNext()){ System.out.println(it.next().toJson()); } ``` 此处运用了过滤器表达式定位满足条件的结果集[^1]。 --- ### 总结 本文档涵盖了从基本设置到高级操作的一系列主题,旨在帮助开发者快速入门基于Java的应用程序中的MongoDB交互技术。无论是初学者还是有一定经验的技术人员都能从中受益匪浅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值