`
somefuture
  • 浏览: 1090037 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mongodb的Java操作

 
阅读更多

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是降序。

索引相关的方法有这些:

 

  • 大小: 23.7 KB
  • 大小: 47.6 KB
  • 大小: 36.9 KB
  • 大小: 20.8 KB
  • 大小: 33.3 KB
2
3
分享到:
评论

相关推荐

    MongoDB Java操作大全 源代码 实例

    本资料包“MongoDB Java操作大全 源代码 实例”将深入探讨如何使用Java API进行MongoDB的操作。 1. **连接MongoDB** 在Java中,首先需要通过`MongoClient`类建立到MongoDB服务器的连接。例如: ```java ...

    Mongodb Java操作实例代码+windows安装包+jar包+ROBO可视化工具

    本资源包提供了MongoDB在Windows平台上的安装指南、Java操作实例代码、所需的jar包以及ROBO 3T(前身为ROBO MongoDB)这一可视化工具,帮助开发者快速上手MongoDB的Java应用。 首先,让我们详细讲解MongoDB的...

    mongodb java 简单操作 win32 安装步骤

    在Windows 32位系统上安装MongoDB并进行Java操作涉及以下关键步骤: **一、MongoDB的Win32安装** 1. **下载MongoDB**:首先,你需要访问MongoDB官方网站(https://www.mongodb.com/)下载适用于Windows 32位系统的...

    MongoDB Java Driver 简单操作

    ### MongoDB Java Driver 简单操作详解 #### 一、简介 MongoDB 是一款非常流行的文档型数据库系统,因其灵活性和高性能而被广泛应用于多种场景之中。为了方便开发者使用 Java 进行开发,MongoDB 提供了官方的 Java ...

    MongoDBjava各版本驱动下载

    MongoDB Java驱动是Java开发者与MongoDB数据库交互的重要工具,它允许Java应用程序通过标准的Java API来执行查询、插入、更新和删除等操作。在Java中使用MongoDB,首先需要安装并配置对应的驱动版本,以确保与正在...

    mongodb java简单demo

    本篇将详细介绍如何使用Java连接MongoDB,以及进行基本的数据操作:创建集合、添加文档、修改文档、查询文档和删除文档。 首先,为了连接MongoDB,我们需要引入MongoDB的Java驱动程序依赖。在Maven项目中,可以在...

    mongoDB java driver api

    MongoDB是一个高性能、开源、无模式的文档型数据库,而Java驱动API则为Java开发者提供了一个直观且强大的接口来操作MongoDB。 首先,让我们了解一下MongoDB Java驱动API的基本结构和核心概念: 1. **MongoClient**...

    MongoDB Java API 中文

    ### MongoDB Java API 使用详解 #### 一、Java 驱动简介与一致性 MongoDB 的 Java 驱动是...这些知识点涵盖了大部分常见的 MongoDB 应用场景,可以帮助初学者快速上手并熟练掌握如何使用 Java 驱动进行数据库操作。

    mongodb java Driver

    MongoDB Java驱动程序是Java开发者用来与MongoDB数据库进行交互的一种关键工具。它提供了一组丰富的API,使得在Java应用程序中执行CRUD(创建、读取、更新、删除)操作变得简单而高效。MongoDB是一个分布式文档存储...

    java 操作mongodb 增删改查

    以上就是Java操作MongoDB的基本步骤。这个“mongodb_helloworld”项目应该包含示例代码,帮助初学者快速上手。记得在实际应用中,你需要处理异常并适当地关闭MongoClient,以避免资源泄漏: ```java mongoClient....

    MongoDB 在java中的应用 纯Java操作

    ### MongoDB在Java中的应用 #### 一、MongoDB简介与安装步骤 ...通过上述步骤,我们可以在Java环境中高效地使用MongoDB进行数据管理和操作。这种方式不仅提高了开发效率,还增强了应用程序的性能和可维护性。

    Mongodb + GridFS +Java 操作Mongodb中存储的文件

    在这个Java操作MongoDB中存储的文件实例中,我们将探讨如何利用GridFS API进行文件的存取。 首先,我们需要在Java项目中引入MongoDB的驱动库。目前,Java驱动通常使用的是MongoDB Java Driver,可以在Maven仓库中...

    java操作mongodb存储文件实例

    将一系列图片文件存储到MongoDB中 java操作mongodb存储文件

    java操作mongoDB(CRUD)

    Java操作MongoDB主要涉及到的是Java驱动程序与MongoDB数据库之间的交互,这涵盖了创建连接、执行CRUD(创建、读取、更新、删除)操作等一系列基本的数据库管理任务。MongoDB是一个流行的NoSQL数据库,以其灵活性、高...

    MongoDB java实现增删改查

    在Java开发中,我们可以使用MongoDB的Java驱动程序来实现对MongoDB数据库的增、删、改、查(CRUD)操作。以下是对这些核心功能的详细说明。 1. **增加(Create)** 要在MongoDB中插入数据,我们需要使用`...

    mongodb java 驱动支持jar 及其源码

    这个驱动程序允许Java应用程序连接到MongoDB服务器,执行CRUD(创建、读取、更新、删除)操作,进行查询、聚合以及其他高级数据库操作。例如,你可以使用`com.mongodb.client.MongoClients.create()`方法创建一个...

    mongoDB 操作 java源代码

    Java MongoDB 驱动是连接 Java 应用程序与 MongoDB 数据库的桥梁,它提供了丰富的 API 供开发者进行数据的增删改查以及其他操作。本压缩包包含的是 `mongodb-mongo-java-driver` 的源代码,版本号可能是 e6901ec,这...

    mongodb java driver 2.11

    MongoDB Java Driver 2.11是用于与MongoDB数据库进行交互的Java开发库,它提供了丰富的API,使得Java开发者可以方便地在应用程序中存取和管理MongoDB的数据。MongoDB是一款高性能、分布式、文档型的NoSQL数据库,它...

    mongodb_java_2.6_API

    MongoDB的Java驱动程序是Java开发者与MongoDB服务器通信的桥梁,它提供了丰富的API,使得在Java应用中执行CRUD(创建、读取、更新、删除)操作变得简单。2.6版本是历史版本,但仍然包含了许多核心功能,如连接管理...

    MongoDb java driver 3.4.2

    MongoDB是一个流行的NoSQL数据库系统,而Java驱动程序则提供了在Java应用程序中操作MongoDB的接口。以下是关于MongoDB Java驱动3.4.2版本的一些关键知识点: 1. **驱动程序版本**:3.4.2是MongoDB Java驱动的一个...

Global site tag (gtag.js) - Google Analytics