-、安装
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);