1、Java 应用示例
要使用Java操作MongoDB的话,要到官方网站下载一个驱动包,点击网站上的Drivers里面,可以看到目前支持的语言,非常的多……把包导入后,可以尝试来操作了(记得一定要开着服务器)
首先介绍一下比较常用的几个类
Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等
DB:对应一个数据库,可以用来建立集合等操作
DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等
DBObjec:接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,因为是key-value的数据结构,所以用起来其实和HashMap是基本一致的
DBCursor:用来遍历取得的数据,实现了Iterable和Iterator
接下来实际的操作一下,代码如下:
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.MongoException;
public class MongoDbTest {
public static void main(String[] args) throws UnknownHostException, MongoException {
//Mongo m = new Mongo();
//Mongo m = new Mongo("localhost");
Mongo m = new Mongo("localhost", 27017);
DB db = m.getDB("mytest");
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s);
}
DBCollection coll = db.getCollection("testCollection");
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);
coll.insert(doc);
DBObject myDoc = coll.findOne();
System.out.println(myDoc);
//Adding Multiple Documents
for (int i=0; i < 100; i++) {
coll.insert(new BasicDBObject().append("i", i));
//Counting Documents in A Collection
System.out.println(coll.getCount());
//Using a Cursor to Get All the Documents
DBCursor cur = coll.find();
while(cur.hasNext()) {
System.out.println(cur.next());
System.out.println("-------------华丽分隔线----------------------");
//Getting A Single Document with A Query
BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cur = coll.find(query);
System.out.println("查找i=71结果为:");
System.out.println("查找i=71结束!");
query = new BasicDBObject();
query.put("i", new BasicDBObject("$gt", 90)); // e.g. find all where i > 50
cur = coll.find(query);
System.out.println("查找i&gt;90结果为:");
System.out.println("查找i&gt;90结束!");
/**
* which should print the documents where i &gt; 50.
* We could also get a range, say 20 < i &lt;= 30 :
*/
query.put("i", new BasicDBObject("$gt", 20).append("$lte", 25)); // i.e. 20 &lt; i &lt;= 30
System.out.println("查找20 &lt; i &lt;= 25结果为:");
System.out.println("查找20 &lt; i &lt;= 25结束!");
//Creating An Index
coll.createIndex(new BasicDBObject("i", 1)); // create index on "i", ascending
//Getting a List of Indexes on a Collection
List&lt;DBObject> list = coll.getIndexInfo();
System.out.println("Getting a List of Indexes on a Collection start...");
for (DBObject o : list) {
System.out.println(o);
System.out.println("Getting a List of Indexes on a Collection end!");
System.out.println("Getting A List of Databases start...");
for (String s : m.getDatabaseNames()) {
System.out.println(s);
System.out.println("Getting A List of Databases end");
System.out.println("Dropping A Database start...");
//m.dropDatabase("my_new_db");
System.out.println("Dropping A Database end!");
}
}
本文转自jooben 51CTO博客,原文链接:http://blog.51cto.com/jooben/350740