天天看点

第三章 MongoDb Java应用 3.1

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>90结果为:");

    System.out.println("查找i>90结束!");

    /**

     * which should print the documents where i > 50. 

     * We could also get a range, say 20 < i <= 30 :

     */

    query.put("i", new BasicDBObject("$gt", 20).append("$lte", 25));  // i.e.   20 < i <= 30

    System.out.println("查找20 < i <= 25结果为:");

    System.out.println("查找20 < i <= 25结束!");

    //Creating An Index

    coll.createIndex(new BasicDBObject("i", 1));  // create index on "i", ascending

    //Getting a List of Indexes on a Collection

    List<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