mongodb在Java环境下简单使用,简单记录,简单增删查改。
配置环境:
mongodb 3.0.6 + window7 64bit
使用maven配置 jar管理
org.testng testng 6.9.4 test org.mongodb mongo-java-driver 3.0.2
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 * @[email protected] * {@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(); MongoCollectiontable = db.getCollection("user_info"); return table; } @SuppressWarnings({ "unchecked", "rawtypes" }) @Test public void initData() { // add list collection vale List list = new ArrayList (); 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 list = new ArrayList (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 objects = new ArrayList (); 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) }