NoSQL数据库之MongoDB学习笔记

时间:2022-11-28 08:42:28

关系型数据库的组织形式:Database、Table、Record

Mongodb的组织形式:Database、Collection、DBObject

=======================================

MongoDB的安装比较简单,大家可以去官网上下载,然后解压即可完成。

NoSQL数据库之MongoDB学习笔记

 1、MongoDB的启动

可以在任意地方新建你的数据库需要存放的位置,这里我在bin文件夹下新建文件夹“data\db”

找到bin目录下的mongod.exe(这个是MongoDB的服务进程),然后在cmd模式下启动:

mongo -dbpath data\db;

2、测试

使用bin下的mongo.exe可以进行客户端的连接,同样在cmd模式下,进行mongo的测试

....../bin> mongo.exe

会自动匹配到一个数据库,这里我新建了test数据库

3、如果使用java进行MongoDB的访问

1)需要在https://github.com/mongodb/mongo-java-driver/downloads下载最新的java驱动包

2)在eclipse下新建java项目,详细内容不述,下面贴代码结构和源代码。

====测试MongoDB====

 

package wl.mongodb;

import java.net.UnknownHostException;

import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;

public class MongoDBMain {

public static void main(String args[]){
Mongo mg;
try {
mg = new Mongo();
// 查询所有的Database
for (String name : mg.getDatabaseNames()) {
System.out.println("dbName: " + name);
}
DB db = mg.getDB("test");
for(String name:db.getCollectionNames()){
System.out.println("collection Name "+name);
}
DBCollection coll = db.getCollection("coll");
DBCursor dbCursor = coll.find();
while(dbCursor.hasNext()){
System.out.println(dbCursor.next());
}
System.out.println("记录数:"+dbCursor.count());
System.out.println("游标ID:"+dbCursor.getCursorId());
System.out.println("JSON格式:"+JSON.serialize(dbCursor));

} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MongoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

====测试MongoDB的CRUD操作====

package wl.mongodb;

import java.net.UnknownHostException;
import java.util.ArrayList;

import org.bson.types.ObjectId;

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

/*
* @Author: coolwzjcool
* CRUD-增删该查
*/
public class MongoCRUDMain {

private Mongo mongodb=null;
private DB db;
private DBCollection dbcoll=null;
/*
* 初始化
*
* 获取test数据库下的coll集合
*
* 默认是protected修饰的,本包下都可以调用
*/
MongoCRUDMain(){
try {
mongodb = new Mongo();
db = mongodb.getDB("test");
dbcoll = db.getCollection("coll");
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MongoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 查询所有的数据
*/
public void queryAllData(){
DBCursor dbCursor = dbcoll.find();
while(dbCursor.hasNext())
System.out.println(dbCursor.next());
}
/*
* 查询单条记录
*/
public void getData(){

}
/*
* 增加单条数据
*/
public void addData(){
DBObject tt = new BasicDBObject();
tt.put("companyID", "BJ_001");
tt.put("companyTel", "010-12345678");
dbcoll.save(tt);
}
/*
* 增加批量数据
*/
public void addBatchData(){
ArrayList al = new ArrayList();
DBObject tt = new BasicDBObject();
tt.put("companyID", "BJ_002");
tt.put("companyTel", "010-98765432");
al.add(tt);
DBObject tt1 = new BasicDBObject();
tt1.put("companyID", "BJ_003");
tt1.put("companyTel", "010-88888888");
al.add(tt1);
dbcoll.insert(al);
this.queryAllData();
}
/*
* 删除单条记录
*/
public void delData(){
dbcoll.remove(new BasicDBObject("_id",new ObjectId("4f558a2490fdf3fd01dc8a19")));
this.queryAllData();
}
/*
* 修改单条记录
*/
public void uptData(){
dbcoll.update(new BasicDBObject("companyID","BJ_004"),new BasicDBObject("companyID","BJ_005") );
this.queryAllData();
}
/*
* client调用 - Main函数
*/
public static void main(String args[]){
MongoCRUDMain mm = new MongoCRUDMain();
//mm.queryAllData();
//mm.addData();
//mm.addBatchData();
//mm.delData();
mm.uptData();
}
}


更详细的内容,请查看相关官网文档。