mongoDB2.6,java使用详解
本文使用的环境是: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/dr
本文使用的环境是: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代码
rm -f /app/hadoop/db/mongod.lock 也即删除指定数据目录下的mongod.lock文件即可。
正常停止方法:
kill -2 PID
或者
Java代码
./mongo -host ip:port 先连接需要停止的服务,然后:
Java代码
>use admin >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)))

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

PHP는 특히 빠른 개발 및 동적 컨텐츠를 처리하는 데 웹 개발에 적합하지만 데이터 과학 및 엔터프라이즈 수준의 애플리케이션에는 적합하지 않습니다. Python과 비교할 때 PHP는 웹 개발에 더 많은 장점이 있지만 데이터 과학 분야에서는 Python만큼 좋지 않습니다. Java와 비교할 때 PHP는 엔터프라이즈 레벨 애플리케이션에서 더 나빠지지만 웹 개발에서는 더 유연합니다. JavaScript와 비교할 때 PHP는 백엔드 개발에서 더 간결하지만 프론트 엔드 개발에서는 JavaScript만큼 좋지 않습니다.

PHP와 Python은 각각 고유 한 장점이 있으며 다양한 시나리오에 적합합니다. 1.PHP는 웹 개발에 적합하며 내장 웹 서버 및 풍부한 기능 라이브러리를 제공합니다. 2. Python은 간결한 구문과 강력한 표준 라이브러리가있는 데이터 과학 및 기계 학습에 적합합니다. 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

PHP가 많은 웹 사이트에서 선호되는 기술 스택 인 이유에는 사용 편의성, 강력한 커뮤니티 지원 및 광범위한 사용이 포함됩니다. 1) 배우고 사용하기 쉽고 초보자에게 적합합니다. 2) 거대한 개발자 커뮤니티와 풍부한 자원이 있습니다. 3) WordPress, Drupal 및 기타 플랫폼에서 널리 사용됩니다. 4) 웹 서버와 밀접하게 통합하여 개발 배포를 단순화합니다.

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.
