今天研究了下java如何使用MongoDB。
驱动下载地址:https://github.com/mongodb/mongo-java-driver/downloads
代码如下:
package mongo;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Set;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.WriteResult;
public class MongoTest {
private static Mongo mongo;
private static DB db;
private static DBCollection collection;
public static void init() {
try {
mongo = new Mongo(" 192.168.134.15", 27017);
//test和collection如果在数据库中没有,则会自动建立
db = mongo.getDB("test");
collection = db.getCollection("collection");
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
init();
MongoTest test = new MongoTest();
test.insertMulti();
DBCursor cursor = test.iteratorAllCusor();
test.getCursor(cursor);
test.dropDatabase("test");
}
public void dropDatabase(String dbName){
mongo.dropDatabase(dbName);
}
//插入一条
public void insert() {
BasicDBObject tester = new BasicDBObject();
tester.put("name", "tester1");
tester.put("age", 25);
tester.put("score", 100);
collection.insert(tester);
}
// 插入多条数据
public void insertMulti() {
for (int i = 0; i < 10; i++) {
collection.insert(new BasicDBObject().append("i", i));
}
}
//查找第一条数据
public DBObject findOne() {
return collection.findOne();
}
// 使用Cursor 获取所有文档
public DBCursor iteratorAllCusor() {
DBCursor cursor = collection.find();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
return cursor;
}
//得到i = 5的cursor
public void getCursor(DBCursor cursor) {
BasicDBObject queryObj = new BasicDBObject();
queryObj.put("i", 5);
cursor = collection.find(queryObj);
try {
while (cursor.hasNext()) {
System.out.println("当前的 cursor = " + cursor.next());
}
} finally {
cursor.close();
}
}
// 查找 1 < i <= 5
public void queryDBObject(DBCursor cursor , BasicDBObject queryObj) {
queryObj.put("i", new BasicDBObject("$gt", 1).append("$lte", 5));
cursor = collection.find(queryObj);
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
}
//删除i = 5的项
public void remove() {
BasicDBObject remove = new BasicDBObject();
remove.put("i", 5);
WriteResult result = collection.remove(remove);
System.out.println("删除i= 5的项" + result);
}
//把i = 1 替换为 i= 2
public void update() {
BasicDBObject queryObj = new BasicDBObject();
queryObj.put("i", 1);
BasicDBObject update = new BasicDBObject();
update.put("i", 2);
DBObject obj = collection.findAndModify(queryObj, update);
System.out.println(obj);
}
// 创建索引 1为升序、-1为降序
public void createIndex() {
collection.createIndex(new BasicDBObject("i", 1));
}
//获得索引列表
public void getIndexList() {
List<DBObject> list = collection.getIndexInfo();
for (DBObject o : list) {
System.out.println(o);
}
}
// 获取数据库列表
public void getDBList() {
for (String s : mongo.getDatabaseNames()) {
System.out.println(s);
}
}
// 获取集合列表
public void getCollectionsList() {
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s);
}
}
}