MongoDB入门

-、安装

Linux系统下

1、安装

命令:sudo apt-get install mongodb-server

2、测试安装是否成功

命令:mongo

结果:connecting to test则表示连接成功

Windows系统下

1、安装

从官网(www.mongodb.org/downloads)下载,将下载的文件解压放到任何目录,设置mongodb/bin到path

2、测试安装是否成功

命令:mongo

结果:connecting to test则表示连接成功

二、基本概念

1、文档(document)

        文档(document)由键/值对构成,像{a:1};{s:"abc"}等,它是MongoDB核心单元.MongoDB的文档(document),相当于关系数据库中的一行记录。

2、集合(collection)

        集合(collection)由多个文档组成,相当于关系数据库的表。

3、数据库(database)

  多个集合(collection),逻辑上组织在一起,就是数据库(database)。

三、常用命令

show dbs//查看所有数据库
use databaseName//切换到指定数据库
show tables//查看所有表
show collections//同上,查看所有表
db.tableName.save(valueKey);//添加一条数据,其中valueKey为Json数据格式,eg:{name:"John",age:23}
db.tableName.find();//查找表中所有数据
db.tableName.find(valueKey)://按条件查找数据
db.tableName.remove();//删除表中所有数据
db.dropDatabase();//删除数据库
db.tableName.drop();//删除表
db.addUser("userName","password");//添加用户
db.removeUser("userName");//删除指定用户
db.system.users.find();//查看所有用户


四、与Java结合使用

import java.net.UnknownHostException;
import java.util.ArrayList;
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;

public class MongoDB {

    public static void main(String[] args) {

        long start = System.nanoTime();
        DB mongoDB = getMongoDB();
        DBCollection dbcollection = getDBconnection(mongoDB, "mydb");
        insertDocument(dbcollection);
        long end = System.nanoTime();
        double time = (end - start) / Math.pow(10, 9);
        System.out.println(time);

        DBCursor cursor = findData(dbcollection);
        List<DBObject> result = getDBObjectsFromDBCursor(cursor);
        for (DBObject obj : result) {
            System.out.println(obj);
        }
    }

    public static DBCursor findData(DBCollection collection) {

        BasicDBObject query = new BasicDBObject();
        query.put("name", new BasicDBObject("$gt", 20).append("$lte", 100));
        return collection.find(query);
    }

    public static List<DBObject> getDBObjectsFromDBCursor(DBCursor cursor) {

        List<DBObject> dbObjectList = new ArrayList<DBObject>();
        while (cursor.hasNext()) {
            dbObjectList.add(cursor.next());
        }
        return dbObjectList;
    }

    // 获得指定库的所有集合名
    public static Set<String> getAllCollectionName(DB db) {

        return db.getCollectionNames();
    }

    // 获取指定集合
    public static DBCollection getDBconnection(DB db, String collectionName) {

        return db.getCollection(collectionName);
    }

    // 插入文档
    public static void insertDocument(DBCollection collection) {

        for (int i = 0; i < 100; i++) {
            BasicDBObject doc = new BasicDBObject();
            doc.put("name", i);
            doc.put("age", i);
            collection.insert(doc); // 保存
        }

        // 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);
    }

    // 连接MongoDB
    public static DB getMongoDB() {

        try {
            // Mongo m = new Mongo();//连接本地
            // Mongo m = new Mongo("localhost");//默认端口27017
            Mongo m = new Mongo("127.0.0.1", 27017);// 指定主机与端口
            DB db = m.getDB("mydb");// 取得指定库
            return db;
        } catch (UnknownHostException e) {
            e.printStackTrace();
            return null;
        }
    }
}

 用户认证

    boolean auth = db.authenticate(myUserName, myPassword);  
 

猜你喜欢

转载自201206262622.iteye.com/blog/1679759