JAVA 之mongodb 增删改查GROUP

JAVA 之mongodb 增删改查

1.    准备

(1)   了解mongodb及其常用语言

可以根据这个网站学习和了解下mongodb的日常操作语句

http://www.w3cschool.cc/mongodb/mongodb-tutorial.html

(2)下载mongo-java-driver JAR包

http://central.maven.org/maven2/org/mongodb/mongo-java-driver/

3.0.0-rc0/ 
 

2.    添加jar包至工程目录下

(1)首先在工程文件夹下新建一个名字为jar(名称随意)的文件夹,然后复制刚才第一步下载的jar包至该文件夹下。

(2)添加对这个jar包的引用

右击工程—选择Properies

然后如图添加对jar的 引用


 

3.    db_mongodb类源代码,代码有注释和示例。

 

import java.util.Arrays;

 

import com.mongodb.BasicDBObject;

import com.mongodb.DB;

import com.mongodb.DBCollection;

import com.mongodb.DBCursor;

import com.mongodb.DBObject;

import com.mongodb.MongoClient;

import com.mongodb.MongoCredential;

import com.mongodb.ServerAddress;

import com.mongodb.WriteConcern;

 

public classdb_mongodb {

 

    MongoClientmongoClient= null;

 

    DBdb = null;

 

    /***

     * 初始化数据库连接

     *

     * @host mongodb IP

     * @port int 端口号

     * @user mongodb用户名,如果没有赋值给null

     * @password mongodb密码,如果没有复制null

     * @database连接的数据库

     *

     *

     ***/

 

    public db_mongodb(String host,intport, String user, String password,

            Stringdatabase) {

        // TODO Auto-generated constructor stub

 

        if (host == null || port == 0 ||database == null){

            System.out

                    .println("please check user or port or database isinserted");

        }

 

        if (user == null && password == null) {

            mongoClient = new MongoClient(host,port);

        }else{

 

            ServerAddressserverAddress = newServerAddress(host, port);

            char[] passwordArray =password.toCharArray();

            MongoCredentialcredential = MongoCredential

                    .createMongoCRCredential(user,database, passwordArray);

            mongoClient = newMongoClient(serverAddress,

                    Arrays.asList(credential));

        }

        mongoClient.setWriteConcern(WriteConcern.JOURNALED);

 

        db = mongoClient.getDB(database);

 

    }

 

    /***

     * 插入操作

     *

     * @colletion待操作表名

     * @doc待插入数据

     *

     ***/

    public void db_insert(Stringcollection, BasicDBObject doc) {

 

        DBCollectioncoll = db.getCollection(collection);

        coll.insert(doc);

    }

 

    /***

     * 查询所有操作

     *

     * @colletion待操作表名

     * @doc待查询数据如果为null查询第一条

     ***/

    public DBObjectdb_findOne(String collection, BasicDBObject doc) {

 

        DBCollectioncoll = db.getCollection(collection);

        if (doc == null) {

            return coll.findOne();

        }else{

            return coll.findOne(doc);

        }

    }

 

    /***

     *

     * 查询所有操作

     *

     * @colletion待操作表名

     * @doc待查询数据如果为null查询所有

     *

     ***/

 

    public DBCursordb_findAll(String collection, BasicDBObject doc) {

        DBCollectioncoll = db.getCollection(collection);

        if (doc == null) {

            return coll.find();

        }else{

            return coll.find(doc);

        }

 

    }

 

    /*****

     * 更新操作

     *

     * @colletion待操作表名

     * @querydoc更新条件

     * @updatedoc更新数据

     * @multi true:更新所有,false:更新第一条

     *

     *

     ****/

 

    public void db_update(Stringcollection, BasicDBObject querydoc,

            BasicDBObjectupdatedoc, booleanmulti) {

        DBCollectioncoll = db.getCollection(collection);

        if (multi == false) {

            coll.update(querydoc,updatedoc);

        }else{

            coll.updateMulti(querydoc,updatedoc);

        }

    }

 

    /*****

     * 删除操作

     *

     * @colletion待操作表名

     * @querydoc待删除数据

     *

     ****/

    public void db_remove(Stringcollection, BasicDBObject querydoc) {

        DBCollectioncoll = db.getCollection(collection);

        coll.remove(querydoc);

    }

 

    /*****

     * 更改目前的连接数据库为@newdatabase

     *

     ****/

    public void change_database(Stringnewdatabase) {

        db = mongoClient.getDB(newdatabase);

    }

 

    /*****

     * 删除操作

     *

     * @colletion待操作表名

     * @doc待统计的doc

     *

     ****/

    public long db_count(Stringcollection, BasicDBObject doc) {

        DBCollectioncoll = db.getCollection(collection);

 

        if (doc == null) {

            return coll.getCount();

        }

 

        else {

            return coll.getCount(doc);

        }

    }

 

    public DBObjectdb_group_by(String collection, BasicDBObject key,

            BasicDBObjectcond) {

        BasicDBObjectinitial = newBasicDBObject("count",0);

        Stringreduce = "function(obj,prev){prev.count++;}";

 

        DBCollectioncoll = db.getCollection(collection);

        DBObjectresultDbObject = coll.group(key, cond, initial, reduce);

        return resultDbObject;

 

    }

 

    public Iterable<String>get_collectionnames() {

        Iterable<String>abcString = db.getCollectionNames();

        return abcString;

    }

 

    public void show(DBCursor cursor) {

        try {

            while (cursor.hasNext()) {

                DBObjecttemp = cursor.next();

                System.out.println(temp);

 

            }

 

        }catch(Exception e) {

            // TODO: handle exception

            e.printStackTrace();

        }finally{

            cursor.close();

        }

 

    }

 

    public static void main(String[] args) {

 

        Stringhost = "10.0.0.191";

        int port = 27017;

        Stringdatabase = "crawl_data";

 

        db_mongodboDb_mongodb = newdb_mongodb(host, port, null, null,

                database);

 

        BasicDBObjectdoc = newBasicDBObject("name","MogoDB")

                .append("type", "database").append("count",1)

                .append("info", new BasicDBObject("x", 203).append("y", 102));

        // test insert

 

        // oDb_mongodb.db_insert(collection, doc);

        // DBObject dbObject = oDb_mongodb.db_findOne(collection,doc);

        // System.out.println(dbObject);

 

        Stringcollection = "testCollection";

        // for (int i = 0; i < 100; i++) {

        // oDb_mongodb.db_insert(collection, newBasicDBObject("i", i));

        // }

 

        System.out.println(oDb_mongodb.db_count(collection,null));

 

        // test update

        BasicDBObjectquerydoc = newBasicDBObject("i",9);

        BasicDBObjectupdatedoc = newBasicDBObject("$set",newBasicDBObject(

                "name", "rong").append("age", 100));

 

        oDb_mongodb.db_update(collection,querydoc, updatedoc, false);

 

        // test query

 

        BasicDBObjectqueryBasicDBObject = new BasicDBObject("i",

                new BasicDBObject("$lt", 20));

 

        DBCursorcursor = oDb_mongodb

                .db_findAll(collection,queryBasicDBObject);

        oDb_mongodb.show(cursor);

        // test remove

        BasicDBObjectremovedoc = newBasicDBObject("i",13);

        oDb_mongodb.db_remove(collection,removedoc);

 

    }

}

详细可参见mongodb的官方文档

http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值