第三章 MongoDb Java应用 3.1

1Java 应用示例
要使用Java操作MongoDB的话,要到官方网站下载一个驱动包,点击网站上的Drivers里面,可以看到目前支持的语言,非常的多……把包导入后,可以尝试来操作了(记得一定要开着服务器)
首先介绍一下比较常用的几个类
Mongo :连接服务器,执行一些数据库操作的选项,如新建立一个数据库等
DB :对应一个数据库,可以用来建立集合等操作
DBCollection :对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等
DBObjec :接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,因为是key-value的数据结构,所以用起来其实和HashMap是基本一致的
DBCursor :用来遍历取得的数据,实现了IterableIterator
接下来实际的操作一下,代码如下:
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 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结果为:" );
    while ( cur .hasNext()) {
        System. out .println( cur .next());
    }
    System. out .println( "查找i=71结束!" );
   
    System. out .println( "-------------华丽分隔线----------------------" );
    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结果为:" );
    while ( cur .hasNext()) {
        System. out .println( cur .next());
    }
    System. out .println( "查找i>90结束!" );
   
    System. out .println( "-------------华丽分隔线----------------------" );
    /**
     *   which   should   print   the   documents   where   i   >   50.  
     *   We   could   also   get   a   range,   say   20   < i <= 30 :
     */
    query = new BasicDBObject();
    query.put( "i" , new BasicDBObject( "$gt" , 20).append( "$lte" , 25));  // i.e.   20 < i <= 30
    cur = coll.find(query);
    System. out .println( "查找20 < i <= 25结果为:" );
    while ( cur .hasNext()) {
        System. out .println( cur .next());
    }
    System. out .println( "查找20 < i <= 25结束!" );
    System. out .println( "-------------华丽分隔线----------------------" );
    //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( "-------------华丽分隔线----------------------" );
    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( "-------------华丽分隔线----------------------" );
    System. out .println( "Dropping A Database start..." );
    //m.dropDatabase("my_new_db");
    System. out .println( "Dropping A Database end!" );
  }
}
Java 职场 应用 Mongodb那些事儿

0

收藏

上一篇:第二章 MongoDb初体验 下一篇:第三章 MongoDb Java...
noavatar_middle.gif
乐少黑板报

130篇文章,50W+人气,16粉丝

互联网攻城狮

关注
noavatar_middle.gif

Ctrl+Enter 发布

发布

取消

2条评论

按时间倒序 按时间正序

推荐专栏

629650e188ddde78b213e564c2e9ebff.jpg
负载均衡高手炼成记

高并发架构之路

共15章 | sery

¥51.00 396人订阅
订   阅
79d1700ce8f618bd9a42ddf02bfd8ddc.jpg
十年老兵教你练一套正宗的MySQL降龙十八掌

MySQL全通晓

共18章 | 张甦

¥51.00 334人订阅
订   阅

猜你喜欢

一次缓存性能问题排查 POLYV敏捷项目管理 MongoDB lsm降低 disk lantency Mongodb分片原理详解及架构部署 MongoDB Replica Set 部署 MongoDB(4.0)分片——大数据的处理之道 MongoDB基本操作、备份还原及用户管理 Yum安装MongoDB及数据库管理
078772c84eb23213ea90f577d9316ce4.png
left-qr.jpg

扫一扫,领取大礼包

0

2
分享
关注
乐少黑板报
noavatar_middle.gif

你可能感兴趣的:(第三章 MongoDb Java应用 3.1)