`
xyz_lmn
  • 浏览: 65509 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Java操作MongoDB

 
阅读更多

java驱动程序是Mongodb中的驱动程序之一,也是比较成熟的Mongodb驱动程序之一,下面介绍了使用java连接、操作Mongodb。

一、安装java驱动程序

Mongodb的java驱动程序是一个jar包,可以在:https://github.com/mongodb/mongo-java-driver/downloads下载,下载的jar导入到eclipse的项目中即可。

二、java操作Mongodb

java操作Mongodb常用的几个类:

Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等

DB:对应一个数据库,可以用来建立集合等操作

DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等

DBObject接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,是key-value的数据结构,用起来和HashMap是基本一致的。

DBCursor:用来遍历取得的数据,实现了Iterable和Iterator

private static void mongodbOperating(){
		try {
			//有多种构造方法,选择一种(IP、port)
			Mongo m = new Mongo( "192.168.21.111" , 27017 );
			//选择数据库,如果没有这个数据库的话,会自动建立
			DB  db = m.getDB( "mydb" );

			//建立一个集合,和数据库一样,如果没有,会自动建立
			DBCollection collection = db.getCollection("myCollectionTest");
			
			BasicDBObject doc = new BasicDBObject();
	        doc.put("name", "MongoDB");
	        doc.put("type", "database");
	        doc.put("count", 1);

	        BasicDBObject info = new BasicDBObject();
	        info.put("x", 203);
	        info.put("y", 102);
	        doc.put("info", info);

	        //插入一条数据,数据如下
	        // {
	        //	   "name" : "MongoDB",
	        //	   "type" : "database",
	        //	   "count" : 1,
	        //	   "info" : {
	        //	               x : 203,
	        //	               y : 102
	        //	             }
	        //	}
            // 可以循环插入多条数据
	        collection.insert(doc);
	        //查找第一条数据,显示如下,_id是系统自动帮加上的,全局唯一
	        //{ "_id" : "49902cde5162504500b45c2c" , "name" : "MongoDB" , "type" : "database" , "count" : 1 , "info" : { "x" : 203 , "y" : 102}}
	        DBObject myDoc = collection.findOne();
	        System.out.println(myDoc);
	        
	        //插入多条数据
	        for (int i=0; i < 100; i++) {
	        	collection.insert(new BasicDBObject().append("i", i));
	        }

	        
	        //获取文档条数
	        System.out.println(collection.getCount());
	        
	        //使用Cursor 获取所有文档
	        DBCursor cursor = collection.find();
	        try {
	            while(cursor.hasNext()) {
	                System.out.println(cursor.next());
	            }
	        } finally {
	            cursor.close();
	        }
	        
	        //查找操作,获取单条记录
	        //{ "_id" : "49903677516250c1008d624e" , "i" : 71 }
	        BasicDBObject query = new BasicDBObject();
	        query.put("i", 71);
	        cursor = collection.find(query);
	        try {
	            while(cursor.hasNext()) {
	                System.out.println(cursor.next());
	            }
	        } finally {
	            cursor.close();
	        }

            //查找 i>50的项
	        query = new BasicDBObject();
	        query.put("i", new BasicDBObject("$gt", 50));  // e.g. find all where i > 50
	        cursor = collection.find(query);
	        try {
	            while(cursor.hasNext()) {
	                System.out.println(cursor.next());
	            }
	        } finally {
	            cursor.close();
	        }


	        //查找 20<i<=30
	        query = new BasicDBObject();
	        query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30));  // i.e.   20 < i <= 30
	        cursor = collection.find(query);
	        try {
	            while(cursor.hasNext()) {
	                System.out.println(cursor.next());
	            }
	        } finally {
	            cursor.close();
	        }

	        //修改 i=71的一项
	        query = new BasicDBObject();
	        query.put("i", 71);
	        BasicDBObject update = new BasicDBObject();
	        update.put("i", 710);
	        DBObject dbobj = collection.findAndModify(query, update);
	        System.out.println(dbobj);
	        
	        //修改 i=72的一项
	        query = new BasicDBObject();
	        query.put("i", 72);
	        update = new BasicDBObject();
	        update.put("i", 720);
	        WriteResult result = collection.update(query, update);
	        System.out.println(result);
	        
	        //删除i=61的项
	        query = new BasicDBObject();
	        query.put("i", 61);
	        collection.findAndRemove(query);
	        //删除i=62的项
	        BasicDBObject remove = new BasicDBObject();
	        remove.put("i", 62);
	        collection.remove(remove);
	        
            //创建索引 1为升序、-1为降序
	        collection.createIndex(new BasicDBObject("i", 1));  // create index on "i", ascending

	        //获取索引列表
	        List<DBObject> list = collection.getIndexInfo();
	        for (DBObject o : list) {
	            System.out.println(o);
	        }

	        //获取数据库列表
	        for (String s : m.getDatabaseNames()) {
	            System.out.println(s);
	        }
	        //获取集合列表
	        Set<String> colls = db.getCollectionNames();
	        for (String s : colls) {
	            System.out.println(s);
	        }

	        //删除数据库
	        //m.dropDatabase("my_new_db");
	        

		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}


http://www.mongodb.org/display/DOCS/Java+Tutorial

分享到:
评论

相关推荐

    java操作mongodb存储文件实例

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

    java 操作mongodb

    【Java 操作 MongoDB 知识点详解】 MongoDB 是一个流行的开源、分布式文档数据库系统,以其灵活性、高性能和高可用性而受到欢迎。在 Java 开发环境中,可以通过 MongoDB 的 Java 驱动程序来实现对 MongoDB 数据库的...

    java 操作mongodb 增删改查

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

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

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

    java操作mongoDB(CRUD)

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

    java操作mongodb示例分享

    Java操作MongoDB是一种常见的数据交互方式,特别是在Java后端开发中。MongoDB是一个NoSQL数据库,以其灵活性、高性能和易扩展性而受到欢迎。在Java中,我们可以使用MongoDB的Java驱动程序来与MongoDB进行通信。以下...

    JAVA操作MongoDB简单增删改查

    以上就是使用Java操作MongoDB的基本步骤。在实际项目中,你可能需要处理更复杂的查询和事务,以及错误处理和连接池管理等高级话题。学习更多关于MongoDB的官方文档和社区资源,如CSDN博客...

    Java操作MongoDB实例

    Java操作MongoDB实例,压缩包内为完整项目源码,使用MyEclipse软件 见文:https://blog.csdn.net/qq_33427869/article/details/87270444

    java操作mongoDB实现文件上传预览打包下载

    对于"java操作mongoDB实现文件上传预览打包下载"这个主题,我们将深入探讨如何利用Java与MongoDB交互,实现文件的上传、下载、预览以及打包下载等功能。 首先,我们需要在Java项目中引入MongoDB的驱动库,通常是...

    Java操作MongoDB之CRUD(增删改查)

    这篇博文“Java操作MongoDB之CRUD(增删改查)”主要探讨了如何使用Java驱动程序来执行基本的数据库操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 首先,我们来了解MongoDB的Java驱动...

    java操作mongodb的工具类

    java操作mongodb的工具类,增删查改方法

    JAVA操作MongoDB之spring整合

    在本文中,我们将深入探讨如何使用Java操作MongoDB并结合Spring框架进行整合。MongoDB是一个流行的NoSQL数据库,它以JSON格式存储数据,适合处理大量非结构化或半结构化数据。Spring框架则是一个强大的Java企业级...

    Java操作mongoDB使用文档.docx(16页.docx

    以上就是使用Java操作MongoDB的基本步骤。在实际应用中,你可能需要处理更复杂的查询和更新,以及错误处理、连接管理等。MongoDB提供了丰富的查询表达式,如`$gt`, `$lt`, `$in`, `$exists`等,以及聚合框架和地理...

    java操作mongodb的demo(带驱动jar)

    Java操作MongoDB是一种常见的数据交互方式,特别是在大数据和分布式系统中。MongoDB是一个高性能、开源、无模式的文档型数据库,而Java作为广泛使用的编程语言,提供了丰富的库和API来与MongoDB进行交互。本Demo提供...

    Java操作MongoDB数据库示例分享

    为了更深入地了解如何使用Java操作MongoDB,你需要学习以下知识点: 1. **MongoDB Java驱动程序**:了解如何添加驱动程序依赖,以及如何创建`MongoClient`实例来连接到MongoDB服务器。 2. **数据模型**:理解...

    JAVA操作MongoDB

    ### JAVA操作MongoDB知识点详解 #### 1. Java操作MongoDB简介 MongoDB是一种面向文档的NoSQL数据库,它提供了灵活的文档模型和高性能的读写操作,非常适合处理大量的数据和快速迭代的开发环境。而Java是一种广泛...

    java操作mongodb

    Java 操作 MongoDB 是一个常见的需求,特别是在开发基于 Java 的应用程序时需要存储和检索非结构化数据。本篇文章将深入探讨如何使用 Java SDK 来与 MongoDB 进行交互,包括基本的增、删、改、查操作。 首先,要...

Global site tag (gtag.js) - Google Analytics