`
oboaix
  • 浏览: 268970 次
社区版块
存档分类
最新评论

mongodb在Java环境下简单使用

阅读更多

mongodb在Java环境下简单使用,简单记录,简单增删查改。

配置环境:

mongodb 3.0.6 + window7 64bit

使用maven配置 jar管理

<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>6.9.4</version>
  <scope>test</scope>
</dependency>

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

 
windows下面直接解压缩:

 

D:\data\mongdb\mongodb-win32-x86_64-3.0.6\bin>mongod.exe --dbpath D:\data\mongdb\mongodb-win32-x86_64-3.0.6\db     (如果dbpathh有空格之类的使用双引号) 

 

直接上代码,非常简单的代码,都是类似操作,基本大同小异:

package com.***.common.dbtest.mongo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.bson.Document;
import org.testng.annotations.Test;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.UpdateOptions;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;

/**
 * simple query database (mongodb) 
 * @author dennis zhao
 * @Date 2015-08-05
 * @27202787@qq.com
 * {@link http://www.runoob.com/mongodb/mongodb-tutorial.html}
 * enviorment mongodb 3.0.6 window7 64bit
 */
public class MongoDbSimpleQuery {

	/**
	 * get database object
	 * @return
	 */

	@SuppressWarnings("resource")
	private MongoDatabase getDb() {
		MongoClient mongo = new MongoClient(host, port);
		MongoDatabase db = mongo.getDatabase("abo");
		return db;

	}

	/**
	 * get table data (as collection)
	 * @return
	 */

	@SuppressWarnings("rawtypes")
	private MongoCollection getCollection() {
		MongoDatabase db = getDb();
		MongoCollection<Document> table = db.getCollection("user_info");
		return table;

	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	@Test
	public void initData() {
//	    add list collection vale
		List<Document> list = new ArrayList<Document>();
		Document user1 = new Document("name", "abo").append("age", 35);
		Document user2 = new Document("name", "dennis").append("age", 36);
		Document user3 = new Document("name", "aaa").append("age", 17);
		Document user4 = new Document("name", "bbb").append("age", 18);
		Document user5 = new Document("name", "ccc").append("age", 24).append("sex", "M");
		Document user6 = new Document("name", "ddd").append("age", 26);
		Document user7 = new Document("name", "eee").append("age", 16);
		Document user8 = new Document("name", "clys").append("age", 40);
		Document user9 = new Document("name", "myboole").append("age", 27).append("sex", "F");
		Document user10 = new Document("name", "琪琪").append("age", 24);
		Document user11 = new Document("name", "哈宝").append("age", 28);
		Document user12 = new Document("name", "蓝莓").append("age", 57);
	    list.add(user1);list.add(user2);list.add(user3);list.add(user4);list.add(user5);list.add(user6);
	    list.add(user7);list.add(user8);list.add(user9);list.add(user10);list.add(user11);list.add(user12);
	    MongoCollection table = getCollection();
	    table.insertMany(list);
	    queryAll(table);
	}
	
	
	/**
	 * add one data
	 */
	@Test
	public void add() {
	     MongoCollection table = getCollection();
	     Document document = new Document();
	     document.put("name", "newData");
	     document.put("age", 20);
	     document.put("systemDate", new Date());
	     table.insertOne(document);
	 }
	
	/**
	 * update data by query
	 */
	@Test
	public void update() {
		MongoCollection table = getCollection();
	     Document query = new Document();
	     query.put("name", "newData");
	     BasicDBObject newDoc = new BasicDBObject();
	     newDoc.put("name", "updateData");
	     newDoc.put("age", 28);
	     UpdateOptions options = new UpdateOptions();
	     options.upsert(true);
	     BasicDBObject updateObj = new BasicDBObject();
	     updateObj.put("$set", newDoc);
	     UpdateResult result = table.updateMany(query, updateObj, options);
	     System.out.println(result.toString());
	     queryAll(table);
	}
	
	/**
	 * delete data
	 */
	@Test
	public void delete() {
		MongoCollection table = getCollection();
		Document document = new Document();
		document.put("name", "updateData");
		DeleteResult result = table.deleteMany(document);
	}

	
//	@Test
	private void queryAll(MongoCollection table) {
		System.out.println("Query user all data.");
//		 MongoCollection table = getCollection();
		 MongoCursor cur = table.find().iterator();
	    while (cur.hasNext()) {
	        System.out.println(cur.next());
	    }
	}

	/**
	 * 
	 * find one data(by sort)
	 */
	@Test
	public void findOne() {
		MongoCollection table = getCollection();
		BasicDBObject dbObject = new BasicDBObject();
		// mongodb order by age(-1 desc,1 asc)
		dbObject.put("age", 1);
		FindIterable iterate = table.find().sort(dbObject).limit(1);
		System.out.println(iterate.iterator().tryNext());
	}

	/**
	 * 
	 * mongodb paging query (by sort)
	 * @param pageIndex
	 *            
	 */
	private void findPage(int pageIndex) {
		int pageSize = 3;
		MongoCollection table = getCollection();
		BasicDBObject dbObject = new BasicDBObject();
		dbObject.put("age", -1);
		MongoCursor cursor = table.find().sort(dbObject).limit(pageSize)
				.skip((pageIndex - 1) * pageSize).iterator();
		System.out.println("current page index :" + pageIndex);
		while (cursor.hasNext()) {
			System.out.println(cursor.next());
		}
	}

	@Test
	public void findPage() {
		findPage(1);
		findPage(2);
	}
	
	
	/**
	 * 
	 * equal query
	 */
	@Test
	public void equalQuery() {
		MongoCollection table = getCollection();
		BasicDBObject dbObject = new BasicDBObject();
		dbObject.put("age", 24);
		MongoCursor cursor = table.find(dbObject).iterator();
		while (cursor.hasNext()) {
			System.out.println(cursor.next());
		}
	}

	/**
	 * 
	 * in collections query
	 */

	@Test
	public void findInCollections() {
		List<Integer> list = new ArrayList<Integer>(4);
		list.add(20);
		list.add(28);
		list.add(25);
		list.add(13);
		MongoCollection table = getCollection();
		BasicDBObject dbObject = new BasicDBObject();
		dbObject.put("age", new BasicDBObject("$in", list));
		MongoCursor cursor = table.find(dbObject).iterator();
		while (cursor.hasNext()) {
			System.out.println(cursor.next());
		}
	}

	/**
	 * 
	 * between A and B query
	 */

	@Test
	public void findBeteenAnd() {
		MongoCollection table = getCollection();
		BasicDBObject dbObject = new BasicDBObject();
		dbObject.put("age", new BasicDBObject("$gt", 15).append("$lt", 26));
		MongoCursor cursor = table.find(dbObject).iterator();
		while (cursor.hasNext()) {
			System.out.println(cursor.next());
		}
	}

	/**
	 * 
	 * not equal query
	 */
	@Test
	public void findNotEqual() {
		MongoCollection table = getCollection();
		BasicDBObject dbObject = new BasicDBObject();
		dbObject.put("age", new BasicDBObject("$ne", 17));
		MongoCursor cursor = table.find(dbObject).iterator();
		while (cursor.hasNext()) {
			System.out.println(cursor.next());
		}
	}

	/**
	 * 
	 * multi condition query
	 */
	@Test
	public void findMultiQuery() {
		MongoCollection table = getCollection();
		List<BasicDBObject> objects = new ArrayList<BasicDBObject>();
		objects.add(new BasicDBObject("age", new BasicDBObject("$ne", 25)));
		objects.add(new BasicDBObject("name", "abo"));
		BasicDBObject query = new BasicDBObject();
		query.put("$and", objects);
		MongoCursor cursor = table.find(query).iterator();
		while (cursor.hasNext()) {
			System.out.println(cursor.next());
		}
	}

	/**
	 * 
	 * regular pattern query
	 */
	@Test
	public void findRegexQuery() {
		MongoCollection table = getCollection();
		BasicDBObject regexQuery = new BasicDBObject();
		regexQuery.put("name", new BasicDBObject("$regex", "[a-z]*e$"));
		// System.out.println(regexQuery.toString());
		MongoCursor cursor = table.find(regexQuery).iterator();
		while (cursor.hasNext()) {
			System.out.println(cursor.next());
		}
	}

	public static final int port = 27017;
	public static final String host = "127.0.0.1";
	//mongodb-win32-x86_64-3.0.6\bin>mongod.exe --dbpath D:\data\mongdb\mongodb-win32-x86_64-3.0.6\db  (windows start mongodb)
}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics