mongodb初体验
最近关注大数据,自然会关注到nosql数据库,其中当然是mongodb。
nosql数据库大多是k,v数据库,这也不是新鲜的名词了,berkerly DB已经存在很多年了,现在属于oracle。
具体k,v数据库为何比传统数据库优载的原理,还需要深入了解和学习。同时两者应该是各有存在的空间。
mongodb的使用非常简单,简单包装一下类如下:
package DBHelper; import com.mongodb.*;
import com.mongodb.util.JSON; import java.net.UnknownHostException;
import java.util.List; /**
* Created by Weijiabin on 2014/10/29.
*/
public class MongoDB { public MongoDB() throws UnknownHostException {
_mongo = new Mongo();
}
private Mongo _mongo;
public DB getDb(String strDbName){
return _mongo.getDB(strDbName);
} public DBCollection getDbCollection(String strStrDbName, String strTableName){
return getDb(strStrDbName).getCollection(strTableName);
} public void add(String strDbName,String strTableName, DBObject obj){
getDbCollection(strDbName,strTableName).save(obj);
} public void addList(String strDbName,String strTableName, List<DBObject> objList){
getDbCollection(strDbName,strTableName).insert(objList);
} public int remove(String strDbName,String strTableName,DBObject obj){
return getDbCollection(strDbName,strTableName).remove(obj).getN();
} public int modify(String strDbName,String strTableName,DBObject objQ,DBObject objN,boolean bUpdateAll){
return getDbCollection(strDbName,strTableName).update(objQ,objN,true,bUpdateAll).getN();
} public DBObject query(String strDbName,String strTableName,DBObject objQ){
return getDbCollection(strDbName,strTableName).findOne(objQ);
} }
测试代码如下:
package DBHelper; import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import org.junit.Test; import static org.junit.Assert.*; public class MongoDBTest { @Test
public void testGetDb() throws Exception {
MongoDB db = new MongoDB();
BasicDBObject obj = new BasicDBObject();
obj.put("name","weijiabin");
obj.put("sex","man");
obj.put("age",32);
db.add("db1","users",obj); BasicDBObject objQ = new BasicDBObject("age",32); DBObject objR = db.query("db1", "users", objQ);
assertEquals("weijiabin",objR.get("name"));
}
}
看得出来,相当的简单和易用。直接操作json数据结构,有xml的优点,同时比xml更适合网络传输。
mongodb初体验的更多相关文章
- node+express+mongodb初体验
从去年11月份到现在,一直想去学习nodejs,在这段时间体验了gulp.grunt.yeomen,fis,但是对于nodejs深入的去学习,去开发项目总是断断续续. 今天花了一天的时间,去了解整理整 ...
- asp.net 使用 MongoDB 初体验
首先:驱动 如果asp.net 想使用MongoDB,.net没有自带的链接类.得用第三方或官方的链接类. 当然有很多种驱动,我就不一一介绍了. 今天我就介绍一个我比较常用的驱动-----MongoD ...
- 分布式NoSQL数据库MongoDB初体验-v5.0.5
概述 定义 MongoDB官网 https://www.mongodb.com/ 社区版最新版本5.0,其中5.2版本很快也要面世了 MongoDB GitHub源码 https://github.c ...
- YII学习,初体验 ,对YII的一些理解.
先说点没用的: 不会选择,选择后不坚持,不断的选择.这是人生中的一个死循环,前两一直迷茫.觉得自己前进方向很不明朗.想去学的东西有很多.想学好YII,想学PYTHON 想学学hadoop什么的,又想研 ...
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...
随机推荐
- OC语法4——自定义构造方法,description方法
自定义构造方法: 我们已经知道创建对象分两步,1:在内存中开辟存储空间,并把地址存储在指针变量里,2:调用指针变量的初始化方法init初始化该对象. Student * stu = [Student ...
- ecshop开发日志之支付插件开发
ecshop开发一个支付插件的方法(例如要新建一个为paytest-----支付测试)1.languages/zh_cn/payment/目录下新建一个paytest.php文件 内容如下: < ...
- Android Fragment StartActivityForresult调用实例
fragment里面的onActivityResult 怎样才能被调用,很简单,就一句话, startActivityForResult(intent, getActivity().RESULT_FI ...
- HTTP协议中的1xx,2xx,3xx,4xx,5xx状态码分别表示什么,列举常见错误码及含义
转自:http://m.blog.csdn.net/blog/u013857407/21741847 HTTP协议状态码,是指在HTTP协议运作中由客户端发出请求连接,服务端建立连接,客户端发出HTT ...
- Latex常用包笔记
1.hyperref 标签包 \usepackage[colorlinks,linkcolor=black,anchorcolor=blue,citecolor=green]{hyperref} 2. ...
- vb6.0 时间日期
使用year(now)可以得到4位数的年 你还可以用Format来得到, 还有FormatDateTime 下面两种都是一样的结果: FormatDateTime(now,vbLongDate ...
- oracle --- spoon
一.Spool常用的设置 set arraysize 5000; //此参数可提高SPOOL卸载的速度,最大可以设置为5000 set autotrace on; //设置允许对执行的sql进 ...
- Linux中的网络
在windows 中表示一张网卡用本地连接1,本地连接2这种方式来表示:而在linux 中用的是etho,eth1 等等这样的东西来表示的.
- Oracle EBS-SQL (SYS-6):sys_在线用户职责查询.sql
/*线用户查询-1*/ SELECT FSAV.USER_NAME,FU.DESCRIPTION,FSAV.RESPONSIBILITY_NAME,FSAV.USER_FORM_NAME,FSAV.L ...
- HTTP协议漫谈
简介 园子里已经有不少介绍HTTP的的好文章.对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将HTTP协议的元素进行分类讲解. HTTP的定义和 ...