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)
}