NoSQL数据库之MongoDB学习笔记

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

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

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

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


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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值