mongoDB2.6,java使用详解

mongodb的java驱动包 这是一个java的mongodb的驱动包,使用它就能够与用java去连接mongodb服务器,和操作mongodb 立即下载
本文使用的环境是:win7_64+Eclipse+maven
一、准备工作

下载java驱动包

驱动包下载地址:http://mvnrepository.com/artifact/org.mongodb/mongo-java-driver

mongoDB下载:http://www.mongodb.org/

在线api:http://docs.mongodb.org/manual/applications/drivers/


二、安装Mongo

1.windows下安装方式:

  安装Mongo数据库:

第一步:下载安装包:如果是win系统,注意是64位还是32位版本的,请选择正确的版本。

第二步:新建目录“D:\MongoDB”,解压下载到的安装包,找到bin目录下面全部.exe文件,拷贝到刚创建的目录下。

第三步:在“D:\MongoDB”目录下新建“data”文件夹,它将会作为数据存放的根文件夹。

  配置Mongo服务端:

  打开CMD窗口,按照如下方式输入命令:
  > d:
  > cd D:\MongoDB
  > mongod --dbpath D:\MongoDB\data

启动成功后从浏览器访问:http://localhost:27017/

标明windows下的mongodb已经启动成功;

  2.linux安装方式:

下载后解压确保数据库目录大小剩余空间在3G以上;

这里采用配置文件方式启动:在mongodb的根目录创建一个名为:mongodb.conf的文件,内容如下:

#fork=true #以守护进程的方式运行,创建服务器进程

##master=true #单主从配置时设为主服务器

##salve=true ##单主从配置时设为从服务器

#replSet=blort #设置富本集的名字

#shardsvr=true #设置是否分片

#repairpath = /mongodb2.6.3/repair 
#pidfilepath = /mongodb2.6.3/mongodb.pid 
#sysinfo = true 
#verbose = true 
#cpu = true 
#Network and security set 
#Management 
#nohttpinterface = true 
#rest = true 
#syncdelay = 5

#Directory and relavent set 
dbpath = /mongodb2.6.3/data #数据库路径
logpath = /mongodb2.6.3/logs/mongodb.log #日志输出文件路径
logappend = true #日志输出方式
directoryperdb = true 
noauth = true 
port = 8888 #端口号
maxConns = 1024 
fork = true 
quota = true 
quotaFiles = 1024 
nssize = 16 

启动方式如下:/mongodb2.6.3/bin/mongod -f /mongodb2.6.3/mongodb.conf
记得开启linux的访问端口:

#vi /etc/sysconfig/iptables

yy复制一行

p粘贴

修改端口

#service iptables restart

设置开机自启动

#echo /mongodb2.6.3/bin/mongod -f /mongodb2.6.3/mongodb.config >>/etc/rc.local


数据库启动完成,接下来是创建数据库和集合:

mongo --port 8888


> show dbs
admin  (empty)
local  0.078GB
> use admin(切换管理用户)
switched to db admin
> db.mymongo(创建数据库)
admin.mymongo
> db.addUser("root","root")(添加用户)
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "root", "roles" : [ "root" ] }
> db.auth("root","root")(添加登陆用户)
1
> db.createCollection("t_users")(添加表)
{ "ok" : 1 }
> show collections(显示表)
system.indexes
system.users
system.version
t_users
> db.t_users.save({age:21})(存储数据)
WriteResult({ "nInserted" : 1 })
> db.t_users.find()(查询所有数据)
{ "_id" : ObjectId("53a2e45e4a674863b4ac5398"), "age" : 21 }

mongodb 删除数据库

use mymongo; 

db.dropDatabase();

 

mongodb删除表 

db.t_users.drop();


MongoDB服务停止:
  在linux下大家停止很多服务都喜欢直接kill -9 PID,但是对于MongoDB如果执行了kill -9 PID,在下次启动时可能提示错误,导致服务无法启动,这个时候可以通过执行:

Java代码  
  1. rm -f /app/hadoop/db/mongod.lock  
也即删除指定数据目录下的mongod.lock文件即可。

正常停止方法:
kill  -2 PID
或者
Java代码  
  1. ./mongo -host ip:port  
先连接需要停止的服务,然后:
Java代码  
  1. >use  admin  
  2. >db.shutdownServer();  

这样也可以正常停止服务。

三、Java操作MongoDB示例

1、 建立Test.java,完成简单的mongoDB数据库操作

try {
			Mongo mg = new MongoClient("192.168.186.129", 8888);
			DB db = mg.getDB("mymongo");
//                      用于判断用户登录
//			if(!db.authenticate("sdap", "sdap123".toCharArray())){
//				方法已经不建议使用
//			}
			Set<String> collectionNames = db.getCollectionNames();
			for (String string : collectionNames) {
				System.out.println(string);
			}


			DBCollection collection2 = db.getCollection("t_users2");
			collection2 = db.getCollection("t_users2");
			CarPasitionObj u = new CarPasitionObj();
			u.setLa(1231d);
			u.setLo(42342d);
			u.setPn("京1aaa");
			u.setTp(12);
			String obj2Json = JsonUtils.getSingletonInstance().obj2Json(u);
			BasicDBObject dbObject1=new BasicDBObject();
			dbObject1.put("key", "123131");
			dbObject1.put("value", obj2Json);
			collection2.save(dbObject1);
			<pre name="code" class="java">			BasicDBObject dbObject=new BasicDBObject();
			dbObject.put("key", "123131");
			DBCursor find = collection2.find(dbObject);
			while (find.hasNext()) {
				DBObject next = find.next();
				String key = (String)next.get("key");
				String json = (String)next.get("value");
				System.out.println(key);
				CarPasitionObj formJson = JsonUtils.getSingletonInstance().formJson(json, CarPasitionObj.class);
				System.out.println(formJson.getPn());
			}
} catch (UnknownHostException e) {
            e.printStackTrace();
            
        }

 

下面贴上我自己的mongodb的工具类:

/**
 * Project Name:main
 * File Name:MongodbCacheManagerUtil.java
 * Package Name:com.hdsx.taxi.driver.cq.cache
 * Date:2014年4月9日下午12:49:55
 * Copyright (c) 2014, sid Jenkins All Rights Reserved.
 * 
 *
*/

package com.hdsx.taxi.driver.cq.mongodb;

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

import org.apache.log4j.Logger;

import com.hdsx.taxi.driver.cq.module.InitServletModule;
import com.hdsx.taxi.driver.cq.tcp.util.JsonUtils;
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.MongoClient;


/**
 * ClassName:MongodbCacheManagerUtil
 * Function: TODO ADD FUNCTION. 
 * Reason:	 TODO ADD REASON. 
 * Date:     2014年4月9日 下午12:49:55 
 * @author   sid
 * @see 	 
 */
public class MongodbManagerUtil {
	private static final Logger logger = Logger.getLogger(MongodbManagerUtil.class);

	private Mongo mg = null;
	private DB db = null;
	
	private volatile static MongodbManagerUtil singleton = null;
	
	public static final String KEY = "key";
	
	public static final String VALUE = "value";
	
	public static MongodbManagerUtil getSingletonInstance() {
		if (singleton == null) {
			synchronized (MongodbManagerUtil.class) {
				if (singleton == null) {
					singleton = new MongodbManagerUtil();
				}
			}
			singleton = new MongodbManagerUtil();
		}
		return singleton;
	}

	private MongodbManagerUtil() {
		if (logger.isDebugEnabled()) {
			logger.debug("MongodbCacheManagerUtil() - start "); //$NON-NLS-1$
		}
			try {
				mg = new MongoClient("192.168.186.129", 8888);
				db = mg.getDB("mymongo");
			} catch (UnknownHostException e) {
				e.printStackTrace();
				
			}

		if (logger.isDebugEnabled()) {
			logger.debug("MongodbCacheManagerUtil() - end"); //$NON-NLS-1$
		}
	}

	/**
	 * 
	 * getCache:(获取缓存对象). 
	 *
	 * @author sid
	 * @param name
	 * @return
	 */
	public DBCollection getCache(String name){
		return this.db.getCollection(name);
	}
	/**
	 * 
	 * put:(在指定缓存对象中加入需要缓存的对象). 
	 *
	 * @author sid
	 * @param cacheName
	 * @param key
	 * @param value
	 */
    public void put(String cacheName, String key, Object value) {  
        DBCollection cache = this.db.getCollection(cacheName);
		String obj2Json = JsonUtils.getSingletonInstance().obj2Json(value);
		BasicDBObject obj = new BasicDBObject();
		obj.put(MongodbManagerUtil.KEY, key);
		obj.put(MongodbManagerUtil.VALUE, obj2Json);
        BasicDBObject basicDBObject = new BasicDBObject(MongodbManagerUtil.KEY, key);
        int size = cache.find(basicDBObject).count();
        if (size==0) {
    		cache.save(obj);
		}else{
    		cache.update(basicDBObject, obj);
		}
    }  
  
    /**
     * 
     * get:(根据key从指定缓存对象中获取对象). 
     *
     * @author sid
     * @param cacheName
     * @param key
     * @return
     */
    public <T> T get(String cacheName, String key, Class<T> classOfT) {
        DBCollection cache = this.db.getCollection(cacheName); 
        List<DBObject> array = cache.find(new BasicDBObject(MongodbManagerUtil.KEY, key)).toArray();
        if (array == null||array.size()==0) {
			return null;
		}
        DBObject dbObject = array.get(0);
        String json = (String)dbObject.get(MongodbManagerUtil.VALUE);
        
        return JsonUtils.getSingletonInstance().formJson(json, classOfT); 
    }  
    
    /**
     * 
     * remove:(从指定缓存对象中清除对象). 
     *
     * @author sid
     * @param cacheName
     * @param key
     */
    public void remove(String cacheName, String key) {
        DBCollection cache = this.db.getCollection(cacheName);
        cache.remove(new BasicDBObject(MongodbManagerUtil.KEY,key));
    }  
    
    /**
     * 
     * getKeys:(获取keys列表). 
     *
     * @author sid
     * @param cacheName
     * @return
     */
	public List<String> getKeys(String cacheName){
		List<String> list = new ArrayList<String>();
        DBCollection cache = this.db.getCollection(cacheName);
        DBCursor find = cache.find();
        while (find.hasNext()) {
        	DBObject next = find.next();
        	String key = (String) next.get(MongodbManagerUtil.KEY);
        	list.add(key);
		}
        return list;
    }
	
	/**
	 * 
	 * containsKey:(判断消息是否存在). 
	 *
	 * @author sid
	 * @param cacheName
	 * @param key
	 * @return
	 */
	public Boolean containsKey(String cacheName,String key){
        DBCollection cache = this.db.getCollection(cacheName);
        BasicDBObject basicDBObject = new BasicDBObject(MongodbManagerUtil.KEY, key);
        int size = cache.find(basicDBObject).count();
        if (size==0) {
    		return false;
		}else{
			return true;
		}
	}
}

除了save、insert、update;mongodb还有remove等操作

其中find方法可以指定查询条件:

大于等于:$gte

小于等于:$lte

不等于:$ne

demo:users.find(new BasicDBObject("age", new BasicDBObject("$gte", 24)))

 



mongo-java-driver-2.6.5 包括: mongo-java-driver-2.6.5-javadoc.jar mongo-java-driver-2.6.5-sources.jar mongo-java-driver-2.6.5.jar 立即下载

相关推荐

mongodb_java_2.6_API

mongodb for java api 英文版

mongodb 2.6 java_mongoDB2.6,java使用具体解释

本文使用的环境是:win7_64+Eclipse+maven一、准备工作下载java驱动包驱动包下载地址:http://mvnrepository.com/artifact/org.mongodb/mongo-java-drivermongoDB下载:http://www.mongodb.org/在线api:http://docs.mongodb.org/manual/applications/d...

weixin_30020909的博客 230

mongodb2.6版本软件包

mongodb2.6版本软件包,mongodb2.6版本软件包,mongodb2.6版本软件包。

从Word2Vec到BERT:文本表示技术的演进与应用

文本表示是自然语言处理的基础技术,它将离散的符号转换为连续的向量空间表示。从早期的one-hot编码到Word2Vec词向量,再到BERT等预训练模型,文本表示技术不断突破维度灾难和语义鸿沟的限制。Word2Vec通过CBOW和Skip-gram架构,首次实现了分布式语义表示,而Transformer和BERT则引入了动态上下文建模能力。这些技术在搜索引擎、推荐系统、智能客服等场景中发挥关键作用,特别是在处理多义词和未登录词时展现出强大优势。随着大模型发展,轻量级词向量与Transformer的混合架构成为

weixin_30700099的博客 423

MongoDBjava各版本驱动下载

MongoDBjava各版本驱动下载

DSP 6678处理器Cache配置实战:从基础设置到多核一致性优化

本文深入探讨了TI TMS320C6678多核DSP处理器的Cache配置与优化实战。文章从基础概念入手,详细解析了L1、L2 Cache的模式选择与内存属性配置,并重点剖析了多核环境下缺乏硬件一致性支持带来的挑战。核心部分提供了基于Writeback和Invalidate操作的手动一致性维护策略,以及针对数据流处理、频繁访问共享数据等不同场景的性能调优与避坑指南,帮助开发者构建高效稳定的多核DSP系统。

o5p6q的博客 184

MongoDB 切换方案

要解决问题: Mongo每天数据增量太大   准备2台mongo做轮转, 实施轮转可能需要考虑的问题如下 :   一、     1、保持目前2台mongo的规模,1台做冷备           对于查询需求:           1)、查询历史 , 可以开放权限           2)、查询当天记录 需要控制,避免加索引影响写的效率     2、再加一套mon

小春的博客 685

NX二次开发入门必看:手把手教你搭建开发环境

想顺利开展nx二次开发,第一步就是配置好开发环境。本文详细讲解从安装准备到环境调试的完整流程,结合实际操作细节,帮你避开常见坑点,快速进入nx二次开发的实战阶段。

weixin_31569663的博客 1458

二、MongoDB简介及基本操作

mongodb是一个基于文档的强大、灵活、易于扩展的通用型数据库。是基于分布式文件存储的数据库。其由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。其主要特点如下:(1)其使用文档来替代关系型数据库表的结构,每条数据不在要求其有无和一致性的类型。(2)每个文档可以具备丰富的层次结构,而不是并列的属性数据。当然对于检索等情况下也不是很建议这样处理。(3)使用横向扩展技术,面向文档的数据模型更易扩展。(4)具备更加丰富、独特、易用的检索功能。

静坐听雨 1万+

别再只用三次多项式了!用MATLAB手把手教你搞定七次多项式轨迹规划(附完整代码)

本文详细介绍了七次多项式在轨迹规划中的优势与应用,通过MATLAB实现从理论推导到实际代码的全过程。相比传统的三次多项式,七次多项式能精确控制位置、速度、加速度和加加速度,实现更平滑的运动控制,特别适用于工业机器人和数控机床等高精度场景。文章包含完整的MATLAB代码示例和优化技巧,帮助工程师快速掌握这一高级轨迹规划方法。

weixin_30872337的博客 298

BRep实战指南:从理论到文件格式的全面解析

本文全面解析BRep(边界表示法)从基础概念到文件格式的实战应用。详细介绍了BRep的数学定义、工业应用场景,以及STEP、IGES等主流文件格式的对比与使用技巧,帮助读者掌握三维建模核心技术并优化性能。

weixin_29235923的博客 407

mongodb 2.6 java_mongoDB2.6,java使用详解

collectionNames = db.getCollectionNames();for (String string : collectionNames) {System.out.println(string);}DBCollection collection2 = db.getCollection("t_users2");collection2 = db.getCollection("t_u...

weixin_34064233的博客 245

SAP CBC 集成质量系统初始化接入实战指南

摘要 本文探讨了SAP S/4HANA Cloud Public Edition项目中质量系统的初始接入过程。质量系统并非开箱即用,而是需要经过SAP Central Business Configuration(CBC)的Scope and Organizational Structure阶段部署后才能具备完整功能。文章重点分析了几个关键环节:CBC里程碑确认的时机选择、Identity Authentication的初始管理员设置、Business Role Template的创建规范等。实施过程中需特

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1408

mongoDB2.6,java使用具体解释

本文使用的环境是:win7_64+Eclipse+maven一、准备工作 下载java驱动包 驱动包下载地址:http://mvnrepository.com/artifact/org.mongodb/mongo-java-driver mongoDB下载:http://www.mong...

weixin_30302609的博客 198

在WIN10系统中安装TIA博途V18,重启后提示安装介质不可用,请插入DVD 或检查网络连接的解决办法

在WIN10系统中安装TIA博途V18,重启后提示安装介质不可用,请插入DVD 或检查网络连接的解决办法

Robot_PLC_HMI_Automation 1万+

Python爬虫:招聘网站岗位要求、薪资与求职者数据爬取与分析

通过本文的教程,我们学习了如何通过 Python 编写招聘数据爬虫,爬取招聘网站上的岗位要求、薪资和求职者数据,并通过数据存储、清洗、分析和可视化,获取有价值的信息。网站如智联招聘、猎云网、前程无忧等,都提供了大量的招聘信息,包括岗位要求、薪资范围、工作经验、学位要求、招聘公司等。本文将介绍如何通过 Python 编写爬虫,爬取招聘网站上的岗位要求、薪资、求职者数据,并通过数据存储、分析和可视化等手段,为求职者或招聘者提供实用的信息和决策支持。通过循环抓取多个页面的数据,可以获取不同岗位的信息。

2201_76125261的博客 723

Java操作MongoDB2.6的常见API用法

对于mongoDB而言,学习方式和学习关系型数据库差不太多 开始都是学习如何insert、find、update、remove,然后就是分页、排序、索引,再接着就是主从复制、副本集、分片等等 最后就是通过它提供的各个驱动(比如Java、PHP、node.js等等)来练习所谓的高级用法 另外:相对于Oracle有PLSQL Developer,MySQL有HeidiSQL mongo

小李专栏 1422

C++大牛的博客

1. C++大牛的博客     Bjarne Stroustrup的博客: Bjarne Stroustrup’s Homepage Bjarne Stroustrup,不认识的可以去面壁了,没有他,就没有我们现在的饭碗。Bjarne Stroustrup是丹麦人,目前任教于TAMU。他的Homepage和他的书籍The C++ Programming Language一样

程序猿老樊的博客 6247

Java操作mongoDB2.6的常见API用法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33806300的博客 145

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java操作mongoDB2.6的常见API使用方法

对于mongoDB而言,学习方式和学习关系型数据库差不太多 開始都是学习怎样insert、find、update、remove,然后就是分页、排序、索引,再接着就是主从复制、副本集、分片等等 最后就是通过它提供的各个驱动(比方Java、PHP、node.js等等)来练习所谓的高级使用方法 另外:相对于Oracle有PLSQL Developer,MySQL有HeidiSQL ...

weixin_33762321的博客 188

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

关于MongoDB java Driver(2.6.5) BUG引申的话题

最近在一直搞Mongodb的主从和集群,从Mongodb官网(http://www.mongodb.org)宕下来Mongodb1.8和最新版的JavaDriver 2.6.5,Mongodb主从可以从这里知晓http://www.mongodb.org/display/DOCS/Replication Master/Slaver模式由于不能自动切换,所以官方也推荐使用Re...

Program_newbie的博客 242

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mongodb 2.6 java,mongoose连接到mongodb 2.6.1副本集auth失败

我正在尝试使用mongoose从node.js连接mongodb . 我在连接多台服务器时遇到问题 . 我能够连接到单个服务器 . 如果我尝试连接多个服务器(因为我想连接到replicasets),它会抛出错误auhtfailed .var options = {'db': {'native_parser': true},'server': {'auto_reconnect': true,'poo...

weixin_42131705的博客 257

使用JAVA连接新版MongoDB(6.0.2)报错

使用JAVA连接新版MongoDB(6.0.2)报错

zc13456v1的博客 3886

Debezium日常分享系列之:Debezium 2.6.0.Alpha2发布

对于想要开始使用新的异步嵌入式引擎的开发人员,debezium 嵌入式工件中现在包含一个名为 io.debezium.embedded.async 的新包,该包包含利用此新实现的所有相关组件。可以使用构建器模式以与串行版本类似的方式构建异步模型,如下所示。即使连接器是单线程且不支持多个任务,使用嵌入式引擎或 Debezium 服务器的连接器部署也可以利用新的异步模型。均匀分派期间的大部分时间都花在转换和序列化阶段,因此在这些阶段使用新的专用工作线程可以提高吞吐量。

zhengzaifeidelushang的博客 901
上一篇: linux安装Oracle11gR2
下一篇: Mongodb参数说明
阳小良
博客等级 码龄17年 54粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值