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

Java MongoDB入门

阅读更多

 

参考资料:Quick Tour

 

安装mongodb就不说了。

 

Maven Dependency(注:这里使用的是mongo-java-driver 3):

 

    <dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongo-java-driver</artifactId>
      <version>3.0.2</version>
    </dependency>

 

 

测试代码(包含CRUD):

 

package com.tch.test.mongodb;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Projections;
import com.mongodb.client.model.Sorts;


public class MongoDbWithJavaTest {

    public static void main(String[] args) {
        MongoClient mongo = null;
        try {
            // connect to mongodb
            mongo = new MongoClient("localhost", 27017);

            // list all databases
//            listDatabases(mongo);

            // get database named "test"
            MongoDatabase testDatabase = mongo.getDatabase("test");

            // list all collections(tables)
//            listCollections(testDatabase);

            MongoCollection<Document> userCollection = testDatabase.getCollection("user");

            // list all documents in user
//            listAllDocuments(userCollection);

            // insert new document
//            insert(userCollection);

            // list all documents in user after insert
//            listAllDocuments(userCollection);
//            listAllSpecifiedDocumentFields(userCollection);

            // list document with given filter
//            listDocumentWithFilter(userCollection);
//            
//            listDocumentWithFilterAndInReverseOrder(userCollection);
            
            // update document
//            updateOneDocument(userCollection);
//            updateAllDocument(userCollection);
//            
//            deleteOne(userCollection);
//            deleteMany(userCollection);
//            
//            listAllDocuments(userCollection);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (mongo != null) {
                mongo.close();
                mongo = null;
            }
        }
    }
    
    public static void deleteOne(MongoCollection<Document> collection) {
        System.out.println("delete one records age less than 24");
        collection.deleteOne(Filters.lt("age", 24));
    }
    
    public static void deleteMany(MongoCollection<Document> collection) {
        System.out.println("delete all records age less than 24");
        collection.deleteMany(Filters.lt("age", 24));
    }

    public static void updateOneDocument(MongoCollection<Document> collection) {
        System.out.println("updateDocument : update one records that named 'dreamoftch' to 'ZhangSan'");
        collection.updateOne(Filters.eq("name", "dreamoftch"), new Document("$set", new Document("name", "ZhangSan")));
    }
    
    public static void updateAllDocument(MongoCollection<Document> collection) {
        System.out.println("updateDocument : update all records that named 'dreamoftch' to 'ZhangSan'");
        collection.updateMany(Filters.eq("name", "dreamoftch"), new Document("$set", new Document("name", "ZhangSan")));
    }

    public static void listDatabases(MongoClient mongo) {
        // list all databases
        MongoIterable<String> allDatabases = mongo.listDatabaseNames();
        for (String db : allDatabases) {
            System.out.println("Database name: " + db);
        }
    }

    public static void listCollections(MongoDatabase database) {
        // list all databases
        MongoIterable<String> allCollections = database.listCollectionNames();
        for (String collection : allCollections) {
            System.out.println("Collection name: " + collection);
        }
    }
    
    public static void listAllDocuments(MongoCollection<Document> collection) {
        System.out.println("begin get all document >>>>>>");
        for (Document document : collection.find()) {
            System.out.println(document);
        }
        System.out.println("finish get all document >>>>>>");
    }
    
    public static void listAllSpecifiedDocumentFields(MongoCollection<Document> collection) {
        System.out.println("begin get all document(exclude '_id') >>>>>>");
        for (Document document : collection.find().projection(Projections.exclude("_id"))) {
            System.out.println(document);
        }
        System.out.println("finish get all document(exclude '_id') >>>>>>");
    }
    
    public static void insert(MongoCollection<Document> collection){
        List<Document> documents = new ArrayList<Document>();
        for (int i = 0; i < 10; i++) {
            documents.add(new Document("name", "dreamoftch").append("age", (20+i)).append("createdDate", new Date()));
        }
        collection.insertMany(documents);
    }
    
    public static void listDocumentWithFilter(MongoCollection<Document> collection) {
        System.out.println("begin get document(name: dreamoftch, age > 25) >>>>>>");
        for (Document document : collection.find(Filters.and(Filters.eq("name", "dreamoftch"), Filters.gt("age", 25)))) {
            System.out.println(document);
        }
        System.out.println("finish get document(name: dreamoftch, age > 25) >>>>>>");
    }
    
    public static void listDocumentWithFilterAndInReverseOrder(MongoCollection<Document> collection) {
        System.out.println("begin get document(name: dreamoftch, age > 25) >>>>>>");
        for (Document document : collection.find(Filters.and(Filters.eq("name", "dreamoftch"), Filters.gt("age", 25))).sort(Sorts.descending("age"))) {
            System.out.println(document);
        }
        System.out.println("finish get document(name: dreamoftch, age > 25) >>>>>>");
    }
}

 

 

测试中间,每测试一个功能,都在mongodb的控制台通过 db.user.find()去查看执行之后的结果。

 

 

 

 

分享到:
评论

相关推荐

    MongoDB入门教程 + 架构简析 + java使用MongoDB的简单程序

    首先,我们从"MongoDB入门教程"开始。MongoDB采用的是键值对存储方式,数据以JSON格式(BSON)存储,这使得数据的读写更加自然和高效。MongoDB支持丰富的查询语法,包括字段选择、条件操作、排序和分组,为开发者...

    Java操作MongoDB入门

    Java Tutorial:Java操作MongoDB入门

    MongoDB入门教程及用例

    1.mongodb-win32-i386-2.4.8.zip 由于大小限制,请到官网下载...2.MongoDB开发使用手册.docx 3.MongoDB快速入门教程.docx 4.MongoDB入门经典.doc 5.MougoTest.rar(MongoDB入门经典.doc用例)

    MongoDB 入门教程 chm手册

    10. **驱动程序**:MongoDB 有多种编程语言的驱动程序,如 MongoDB 驱动程序 for Python、Java、Node.js 等,方便开发者在各种环境中使用 MongoDB。 在学习 MongoDB 时,结合《MongoDB 入门教程》CHM 手册,可以...

    mongodb安装配置及java操作mongodb

    接着,我们有《MongoDB入门需知(for_phper).doc》,虽然文档标题提到的是PHP开发者,但其中的内容对于理解MongoDB的基本概念和操作是通用的。MongoDB的核心概念包括集合(类似关系数据库的表)、文档(JSON格式的...

    mongoDB入门实战手册(中文版)

    ### MongoDB入门实战手册知识点概述 #### 一、MongoDB简介 MongoDB是一种开源的文档型数据库,属于NoSQL数据库的一种。它使用JSON格式的文档来存储数据,具有高性能、高可用性和易扩展性等特点,非常适合处理半结构...

    java基于jsoup+mongodb的简单爬虫入门程序

    **Java基于Jsoup+MongoDB的简单爬虫入门程序** 在现代互联网环境中,数据的获取与分析变得至关重要,而爬虫技术就是实现这一目标的重要工具。本教程将介绍如何使用Java编程语言,结合Jsoup库进行网页抓取,并利用...

    Mongodb入门教程、示例+Spring Boot完整示例+聚合.docx

    "Mongodb入门教程、示例+Spring Boot完整示例+聚合" 本节课将完整地介绍 MongoDB 的入门教程、示例、Spring Boot 完整示例和聚合。 简介 NoSQL(Not Only SQL)是一种非关系型的数据库, MongoDB 是基于分布式...

    MongoDB入门笔记

    MongoDB支持JavaScript语法,可以在数据库层面执行脚本,这使得其与后端开发语言(如Java)的集成变得更为便捷。 在MongoDB中,数据的基本单位是文档(Document),类似于传统数据库的行。文档由多个字段(Field)...

    MongoDB入门以及实现微聊即时通讯功能.docx

    MongoDB入门和微聊即时通讯功能实现 在这篇文章中,我们将探索MongoDB的基本概念和Java API的使用,并学习如何使用Spring Boot整合MongoDB来搭建微聊系统实现微聊功能和分布式WebSocket解决方案。 MongoDB入门 ...

    MongoDB基础入门到高级进阶

    小白也可入门学习,如果有一些MySQL、Js经验最佳,Java代码案例部分需要有一定的Java开发基础。 3、课程亮点 系统的学习MongoDB从入门到进阶,掌握现在火爆的NoSQL技术之一。 选择MongoDB的原因及其优势 MongoDB单机...

    MONGODB学习总结入门篇.pdf

    MongoDB学习总结入门篇.pdf MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。下面将对MongoDB的基本概念、特点、使用原理和基本操作进行详细介绍。 1. MongoDB基本...

    mongoDB入门列子及原理介绍.docx

    MongoDB 入门指南 MongoDB 是一种基于分布式文件存储的 NoSQL 非关系数据库,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它具有以下几个特点: 1. 模式自由:MongoDB 的数据存储格式为 BSON(一种 JSON ...

    MongoDB入门以及实现微聊即时通讯功能的Java代码.zip

    - 连接MongoDB:使用`mongo`命令行工具或者Java驱动程序(如MongoDB Java Driver)进行连接。 3. **Java与MongoDB的集成** - 添加依赖:在Java项目中,我们需要引入MongoDB Java驱动程序的依赖,通常通过Maven或...

    Mongodb基础知识详解(值得珍藏).pdf

    同时,MongoDB支持多种编程语言的驱动程序,如Perl、PHP、Java、C#、JavaScript、Ruby、C和C++,方便开发者进行集成。 MongoDB的数据存储格式是BSON,这是一种二进制形式的JSON,能够高效存储包括大型对象在内的...

    mongodb入门教程笔记

    7. **多语言支持**:包括RUBY、PYTHON、JAVA、C++、PHP等。 8. **BSON格式**:基于JSON,但增加了日期和二进制数据类型,适合数据库存储。 MongoDB适用于处理网站数据、缓存、移动应用、电商、产品信息等大数据量且...

    Java + MongoDB 实现 hello world 例子(译)

    在本教程中,我们将探讨如何使用Java编程语言与MongoDB数据库进行交互,通过一个简单的"Hello, World!"示例来入门。MongoDB是一款流行的、基于文档的NoSQL数据库,而Java是广泛应用于企业级开发的编程语言。结合两者...

    MongoDB入门的一些资料

    3. **应用程序集成**:如何在各种编程语言(如Python、Java、Node.js等)中使用MongoDB驱动。 4. **故障排查**:常见的错误和异常处理,以及监控和日志分析。 5. **云服务集成**:如使用MongoDB Atlas在云端部署和...

    mongodb入门时候文档

    - MongoDB提供了多种语言的驱动程序,如Python、Java、Node.js等,方便集成到不同开发环境中。 - 驱动程序通常封装了MongoDB的命令,简化了数据操作。 10. **最佳实践** - 设计灵活的数据模型,避免强依赖于特定...

Global site tag (gtag.js) - Google Analytics