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