java mongo 入门示例

来源:互联网 发布:js动态树形菜单 编辑:程序博客网 时间:2024/06/07 05:08

首先是装好环境,先去下载mongo,地址http://www.mongodb.org/downloads 

java驱动程序下载:http://www.mongodb.org/display/DOCS/Drivers

再来看下快速上手的文档:http://www.mongodb.org/display/DOCS/Quickstart

根据文档来做些练习,做到心中有数后,开始进入下面的开发了

mongoDB方面的配置,首先要保证我们创建的库是相对安全的,也就是说要经过权限的验证后,才可以访问。

权限的安全方面可以看这里:http://www.mongodb.org/display/DOCS/Security+and+Authentication

开始操作:

1.启动mongo服务。我的是windows xp上面的,用cmd,进入解压后目录的bin,我的是D:\soft\mongo\bin ,然后执行mongod --dbpath d:\mongo_data 服务就启动了。--dbpath的意思就是你数据文档的存放处。

2.创建DB,然后创建管理员用户

cmd进入mongo解压后的目录,执行bin 下面的mongo ,默认进入的是test,我们切换下,

> use my_mongo
> db.addUser("spell", "007")

OK,管理员账户创建完成了,你可以查询的到,命令是

db.system.users.find()

关于安全方面的命令:

创建管理员帐号
> use admin
> db.addUser("theadmin", "anadminpassword")

授权:
> db.auth("theadmin", "anadminpassword")


查看用户列表:
 db.system.users.find()

只读权限的用户创建
db.addUser("guest", "passwordForGuest", true)

删除管理员
db.system.users.remove( { user: username } )

3.重新DB启动服务,并且以安全模式运行。

操作步骤:到DB服务端的CMD窗口,先ctrl+c 停止服务运行,然后执行mongod --dbpath d:\mongo_data --auth ,--auth的表示要对管理员进行授权验证。

4.创建个java工程,然后引入mongo的java驱动jar包,我的一个java例子,文件:MongoTest.java

package com.spell;

import java.util.Date;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;

public class MongoTest {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        MongoTest mt = new MongoTest();
        //mt.insertMemo();
        mt.getMemo();
        //mt.query();
        //mt.delete();
    }

    public static DBCollection getDBCollection(String collectionName)
            throws Exception {
        Mongo m = new Mongo("localhost", 27017);
        DB db = m.getDB("my_mongo");
        if(db.authenticate("spell", "007".toCharArray())){
            System.out.println("auth success");;
        }
        DBCollection coll = db.getCollection(collectionName);
        return coll;
    }

    public void insertMemo() throws Exception {
        DBCollection coll = MongoTest.getDBCollection("memo");
        BasicDBObject doc = new BasicDBObject();
        doc.put("title", "one meeting");
        doc.put("palce", "one meeting");
        doc.put("time", new Date());
        coll.insert(doc);
    }

    public void getMemo() throws Exception {
        DBCollection coll = MongoTest.getDBCollection("memo");
        BasicDBObject obj = (BasicDBObject) coll.findOne();
        System.out.println(obj);
    }

    public void query() throws Exception {
        DBCollection coll = MongoTest.getDBCollection("memo");
        BasicDBObject obj = new BasicDBObject();
        obj.put("title", "one meeting");
        DBCursor cursor = coll.find(obj);
        while (cursor.hasNext()) {
            Date date = (Date) cursor.next().get("time");
            System.out.println(date.toLocaleString());
        }
        cursor.close();
    }

    public void delete() throws Exception {
        DBCollection coll = MongoTest.getDBCollection("memo");
        BasicDBObject query = new BasicDBObject();
        query.put("title", "one meeting");
        //找到并且删除,并返回删除的对象
        DBObject removeObj=coll.findAndRemove(query);
        System.out.println(removeObj);
    }
}