MongoDB中的一条记录就是一个文档(document),里面存储了由字段和值对构成的数据结构。文档看起来很像JSON对象,字段的值可以是数组、其他文档,也可以是文档数组:
{ "_id" : ObjectId("54c955492b7c8eb21818bd09"), "address" : { "street" : "2 Avenue", "zipcode" : "10075", "building" : "1480", "coord" : [ -73.9557413, 40.7720266 ], }, "borough" : "Manhattan", "cuisine" : "Italian", "grades" : [ { "date" : ISODate("2014-10-01T00:00:00Z"), "grade" : "A", "score" : 11 }, { "date" : ISODate("2014-01-16T00:00:00Z"), "grade" : "B", "score" : 17 } ], "name" : "Vella", "restaurant_id" : "41704620" }
MongoDB将文档存储在集合(collection)中,集合也就是关系型数据库的表。不过和表不一样的是,集合完全不要求内部文档必须模式一致。文档也有主键,而且名称必须是_id。你不提供它就会自动添加。
由于MongoDB的文档格式类似于JSON,所以可以从JSON文件导入数据,只要数据格式合法。比如我们把 https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/dataset.json 的内容保存起来,命名为dbset.json。我们通过下面这条命令导入这些数据到集合restaaurants中:
mongoimport --db test --collection restaurants --drop --file dbset.json
工具是mongoimport,数据库是test,后面指定了文件源。这个工具的更详细介绍参考 https://docs.mongodb.org/manual/reference/program/mongoimport/#bin.mongoimport 。
通过Java操作MongoDB要用到俩jar包:Uber MongoDB Java Driver和BSON,官方给了maven集成方式:
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.0.4</version> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>bson</artifactId> <version>3.0.4</version> </dependency> </dependencies>
但是我尝试了不行,只能自己下载了。
访问数据库的方法如下:
MongoClient mongoClient = new MongoClient(); MongoDatabase db = mongoClient.getDatabase("test");
插入数据有四个方法:
我们试一下第三个
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.CHINA); Document document = new Document("address", new Document("street", "avenue 2").append("zipcode", "200000").append("building", "1480").append( "coord", Arrays.asList(-73.9557413, 40.7720266))) .append("borough", "一个省") .append("Country", "中国") .append("grades", Arrays.asList(new Document() .append("date", format.parse("2014-10-01T00:00:00Z")) .append("grade", "A") .append("score", 11), new Document().append("date", format.parse("2014-01-16T00:00:00Z")) .append("grade", "B").append("score", 17))) .append("name", "Vella").append("hotel_id", "41704620"); database.getCollection("restaurants").insertOne(document);
之后我们把数据查询一下:
FindIterable<Document> iterable = db.getCollection("restaurants").find(); iterable.forEach(new Block<Document>() { @Override public void apply(final Document document) { System.out.println(document); } });
可以看到多了一个_id字段。
如果想有针对性的检索,可以传入一个文档:
FindIterable<Document> iterable = db.getCollection("restaurants").find( new Document("borough", "哈哈哈"));
(这个匹配失败了所以没有东西返回)
更新数据的方法也比较简单,第一个参数用来检索,第二个是新数据。
比如:
db.getCollection("restaurants").updateOne(new Document("restaurant_id", "41156888"), new Document("$set", new Document("address.street", "East 31st Street")));
将会更新address.street。
如果要改的字段太多,可以使用replaceOne
删除数据使用delete:
比如
db.getCollection("restaurants").deleteMany(new Document("borough", "Manhattan"));
全部删除的话可以
db.getCollection("restaurants").deleteMany(new Document());
连集合都不要的话可以
db.getCollection("restaurants").drop();
最后说一下索引的建立
db.getCollection("restaurants").createIndex(new Document("cuisine", 1));
使用createIndex,指定为哪个字段键索引,1是升序,-1是降序。
索引相关的方法有这些:
相关推荐
本资料包“MongoDB Java操作大全 源代码 实例”将深入探讨如何使用Java API进行MongoDB的操作。 1. **连接MongoDB** 在Java中,首先需要通过`MongoClient`类建立到MongoDB服务器的连接。例如: ```java ...
本资源包提供了MongoDB在Windows平台上的安装指南、Java操作实例代码、所需的jar包以及ROBO 3T(前身为ROBO MongoDB)这一可视化工具,帮助开发者快速上手MongoDB的Java应用。 首先,让我们详细讲解MongoDB的...
在Windows 32位系统上安装MongoDB并进行Java操作涉及以下关键步骤: **一、MongoDB的Win32安装** 1. **下载MongoDB**:首先,你需要访问MongoDB官方网站(https://www.mongodb.com/)下载适用于Windows 32位系统的...
### MongoDB Java Driver 简单操作详解 #### 一、简介 MongoDB 是一款非常流行的文档型数据库系统,因其灵活性和高性能而被广泛应用于多种场景之中。为了方便开发者使用 Java 进行开发,MongoDB 提供了官方的 Java ...
MongoDB Java驱动是Java开发者与MongoDB数据库交互的重要工具,它允许Java应用程序通过标准的Java API来执行查询、插入、更新和删除等操作。在Java中使用MongoDB,首先需要安装并配置对应的驱动版本,以确保与正在...
本篇将详细介绍如何使用Java连接MongoDB,以及进行基本的数据操作:创建集合、添加文档、修改文档、查询文档和删除文档。 首先,为了连接MongoDB,我们需要引入MongoDB的Java驱动程序依赖。在Maven项目中,可以在...
MongoDB是一个高性能、开源、无模式的文档型数据库,而Java驱动API则为Java开发者提供了一个直观且强大的接口来操作MongoDB。 首先,让我们了解一下MongoDB Java驱动API的基本结构和核心概念: 1. **MongoClient**...
### MongoDB Java API 使用详解 #### 一、Java 驱动简介与一致性 MongoDB 的 Java 驱动是...这些知识点涵盖了大部分常见的 MongoDB 应用场景,可以帮助初学者快速上手并熟练掌握如何使用 Java 驱动进行数据库操作。
MongoDB Java驱动程序是Java开发者用来与MongoDB数据库进行交互的一种关键工具。它提供了一组丰富的API,使得在Java应用程序中执行CRUD(创建、读取、更新、删除)操作变得简单而高效。MongoDB是一个分布式文档存储...
以上就是Java操作MongoDB的基本步骤。这个“mongodb_helloworld”项目应该包含示例代码,帮助初学者快速上手。记得在实际应用中,你需要处理异常并适当地关闭MongoClient,以避免资源泄漏: ```java mongoClient....
### MongoDB在Java中的应用 #### 一、MongoDB简介与安装步骤 ...通过上述步骤,我们可以在Java环境中高效地使用MongoDB进行数据管理和操作。这种方式不仅提高了开发效率,还增强了应用程序的性能和可维护性。
在这个Java操作MongoDB中存储的文件实例中,我们将探讨如何利用GridFS API进行文件的存取。 首先,我们需要在Java项目中引入MongoDB的驱动库。目前,Java驱动通常使用的是MongoDB Java Driver,可以在Maven仓库中...
将一系列图片文件存储到MongoDB中 java操作mongodb存储文件
Java操作MongoDB主要涉及到的是Java驱动程序与MongoDB数据库之间的交互,这涵盖了创建连接、执行CRUD(创建、读取、更新、删除)操作等一系列基本的数据库管理任务。MongoDB是一个流行的NoSQL数据库,以其灵活性、高...
在Java开发中,我们可以使用MongoDB的Java驱动程序来实现对MongoDB数据库的增、删、改、查(CRUD)操作。以下是对这些核心功能的详细说明。 1. **增加(Create)** 要在MongoDB中插入数据,我们需要使用`...
这个驱动程序允许Java应用程序连接到MongoDB服务器,执行CRUD(创建、读取、更新、删除)操作,进行查询、聚合以及其他高级数据库操作。例如,你可以使用`com.mongodb.client.MongoClients.create()`方法创建一个...
Java MongoDB 驱动是连接 Java 应用程序与 MongoDB 数据库的桥梁,它提供了丰富的 API 供开发者进行数据的增删改查以及其他操作。本压缩包包含的是 `mongodb-mongo-java-driver` 的源代码,版本号可能是 e6901ec,这...
MongoDB Java Driver 2.11是用于与MongoDB数据库进行交互的Java开发库,它提供了丰富的API,使得Java开发者可以方便地在应用程序中存取和管理MongoDB的数据。MongoDB是一款高性能、分布式、文档型的NoSQL数据库,它...
MongoDB的Java驱动程序是Java开发者与MongoDB服务器通信的桥梁,它提供了丰富的API,使得在Java应用中执行CRUD(创建、读取、更新、删除)操作变得简单。2.6版本是历史版本,但仍然包含了许多核心功能,如连接管理...
MongoDB是一个流行的NoSQL数据库系统,而Java驱动程序则提供了在Java应用程序中操作MongoDB的接口。以下是关于MongoDB Java驱动3.4.2版本的一些关键知识点: 1. **驱动程序版本**:3.4.2是MongoDB Java驱动的一个...