当前位置:首页 » 编程语言 » java连接mongodb

java连接mongodb

发布时间: 2022-07-26 21:37:58

Ⅰ 有没有大神 java连接mongodb遇到了问题

新版本的mongodb的驱动包是依赖bson.jar和mongodb_driver_core.jar的 官网上有提示:
Note: mongodb-driver requires the following dependencies: bson and mongodb-driver-core

去看一下 ,然后对应的地方有两个包的下载,导进你的方法就ok了

下载地址:

MongoDB-driver-3.0.1.jar
mongodb-driver-core-3.0.1.jar
bson-3.0.1.jar
https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.0.1/

https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver-core/3.0.1/

https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/3.0.1/

Ⅱ Mongodb java 怎样连接

首先你要下载Java连接MongoDB所需要的jar包:http://mongodb.github.io/mongo-java-driver/,然后就是自己去看jar包的api了。
MongoDB 3.0一般都是:
MongoClient mongoClient = new MongoClient("localhost", 27017); // 获取链接
MongoDatabase database = mongoClient.getDatabase("mydb"); // 获取数据库
MongoCollection<Document> collection = database.getCollection("test"); // 进入某个文档集

Ⅲ java链接mongo数据库需要引什么jar包

  1. 需要的jar

mongo-java-driver

maven仓库里面,mongodb3.0的连接驱动
<!--MongoDB数据库连接驱动-->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.0</version>
</dependency>

2.连接过程代码


importorg.bson.Document;

importcom.mongodb.MongoClient;
importcom.mongodb.client.MongoCollection;
importcom.mongodb.client.MongoDatabase;

/**
*2016年8月5日下午3:19:44
*
*@author3306TODO测试Mongo数据库连接
*
*/
publicclassTestMongo{

;

privatestaticStringhost="192.168.0.149";//mongo数据库服务器地址,本地为127.0.0.1
privatestaticintport=20000;//mongo默认为27017端口

/**
*获取数据库集合
*
*@paramdatabaseName
*数据库名称
*@paramcollectionName
*集合名称
*@returnMongoCollection<Document>
*/
publicstaticMongoCollection<Document>getMongoCollection(StringdatabaseName,StringcollectionName){
returngetMongoDatabase(databaseName).getCollection(collectionName);
}

/**
*获取mongo数据库
*
*@paramdatabaseName
*数据库名称
*@returnMongoDatabase
*/
(StringdatabaseName){
mongoClient=newMongoClient(host,port);
returnmongoClient.getDatabase(databaseName);
}

/**
*测试数据连接
*
*@paramargs
*/
publicstaticvoidmain(String[]args){

StringdatabaseName="mojing";//数据库
StringcollectionName="user";//集合名称

MongoCollection<Document>userCollection=getMongoCollection(databaseName,collectionName);

System.out.println(userCollection.count());
}

}

Ⅳ java怎么连接linux下面的mongodb数据库

想在shell中连接数据库,首先要在连接数据的机器上安装mongodb的客户端才可以。客户端的安装在这里不再重复,自己网络或者google一下吧。连接mongodb的命令如下:/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888
这个是我的数据库配置,没有设置用户名密码。所以直接通过该命令就可以连接。

Ⅳ java怎么连接mangodb需要哪些步骤

开发环境:

System:Win7

IDE:eclipse

Database:mongoDB

开发依赖库:

JavaEE5、mongo-2.5.3.jar、junit.jar、org.hamcrest.core_1.1.0.v20090501071000.jar

一、准备工作

1、下载Mongodb对java支持jar包

jar包下载地址:

mongoDB对Java的相关支持、技术:http://www.mongodb.org/display/DOCS/Java+Language+Center

驱动源码下载:https://download.github.com/mongodb-mongo-java-driver-r2.6.1-7-g6037357.zip

在线查看源码:https://github.com/mongodb/mongo-java-driver

2、下面建立一个JavaProject工程,导入下载下来的驱动包。即可在Java中使用mongoDB,目录如下:

二、Java操作MongoDB示例

在本示例之前你需要启动mongod.exe的服务,启动后,下面的程序才能顺利执行;

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

Mongomongo=newMongo();

这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。

DBdb=mongo.getDB(“test”);

这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。mongoDB可以在没有创建这个数据库的情况下,完成数据的添加操作。当添加的时候,没有这个库,mongoDB会自动创建当前数据库。

得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。

DBCollectionusers=db.getCollection("users");

这样就获得了一个DBCollection,它相当于我们数据库的“表”。

查询所有数据:

DBCursorcur=users.find();

while(cur.hasNext()){

System.out.println(cur.next());

}

完整源码:

packagecom.mongodb;

importjava.net.UnknownHostException;

importcom.mongodb.util.JSON;

publicclasssimpleTest{

publicstaticvoidmain(String[]args)throwsUnknownHostException,MongoException{

Mongomg=newMongo();

//查询所有的Database

for(Stringname:mg.getDatabaseNames()){

System.out.println("dbName:"+name);

}

DBdb=mg.getDB("test");

//查询所有的聚集集合

for(Stringname:db.getCollectionNames()){

System.out.println("collectionName:"+name);

}

DBCollectionusers=db.getCollection("users");

//查询所有的数据

DBCursorcur=users.find();

while(cur.hasNext()){

System.out.println("while="+cur.next());

}

System.out.println("count="+cur.count());

System.out.println("CursorId="+cur.getCursorId());

System.out.println("cur="+JSON.serialize(cur));

}

}

2、完成CRUD操作,首先建立一个curdTset.java,基本测试代码如下:

packagecom.mongodb;

importjava.net.UnknownHostException;

importjava.util.ArrayList;

importjava.util.List;

importorg.bson.types.ObjectId;

importorg.junit.After;

importorg.junit.Before;

importorg.junit.Test;

importcom.mongodb.util.JSON;

publicclasscurdTset{

privateMongomg=null;

privateDBdb;

privateDBCollectionusers;//连接的mongodb数据库

@Before

publicvoidinit(){

System.out.println("TestBefore...");

try{

mg=newMongo();

//mg=newMongo("localhost",27017);

}catch(UnknownHostExceptione){

e.printStackTrace();

}catch(MongoExceptione){

e.printStackTrace();

}catch(Exceptione){

e.printStackTrace();

}

//获取testDB;如果默认没有创建,mongodb会自动创建

db=mg.getDB("test");

//获取usersDBCollection;如果默认没有创建,mongodb会自动创建

users=db.getCollection("users");

}

@After

publicvoiddestory(){

System.out.println("TestAfter...");

if(mg!=null){

mg.close();

}

mg=null;

db=null;

users=null;

System.gc();

}

publicvoidprint(Objecto){

System.out.println(o);

}

privatevoidqueryAll(){

print("查询users的所有数据:");

//db游标

DBCursorcur=users.find();

inti=1;

while(cur.hasNext()){

print("记录"+i+":"+cur.next());

i++;

}

}

@Test

publicvoidadd(){

//先查询所有数据

queryAll();

System.out.println("===============================ADDstart=======================================");

print("ADDcount:"+users.count());

DBObjectuser=newBasicDBObject();

user.put("name","hoojo");

user.put("age",24);

user.put("sex","男");

print(users.save(user).getN());

//添加多条数据,传递Array对象

print(users.insert(user,newBasicDBObject("name","tom")).getN());

//添加List集合

Listlist=newArrayList();

list.add(user);

DBObjectuser2=newBasicDBObject("name","lucy");

user.put("age",22);

list.add(user2);

//添加List集合

print(users.insert(list).getN());

//查询下数据,看看是否添加成功

print("count="+users.count());

System.out.println("===============================ADDend=======================================");

//查询所有数据

queryAll();

}

@Test

publicvoidremove(){

queryAll();

print("删除id=4dde2b06feb038463ff09042:"+users.remove(newBasicDBObject("_id",newObjectId("4dde2b06feb038463ff09042"))).getN());

print("removeage>=24:"+users.remove(newBasicDBObject("age",newBasicDBObject("$gte",24))).getN());

System.out.println("===============================REMOVEend=======================================");

//查询所有数据

queryAll();

}

@Test

publicvoidmodify(){

print("修改:"+users.update(newBasicDBObject("_id",newObjectId("4dde25d06be7c53ffbd70906")),newBasicDBObject("age",99)).getN());

print("修改:"+users.update(

newBasicDBObject("_id",newObjectId("4dde2b06feb038463ff09042")),

newBasicDBObject("age",121),

true,//如果数据库不存在,是否添加

false//多条修改

).getN());

print("修改:"+users.update(

newBasicDBObject("name","haha"),

newBasicDBObject("name","dingding"),

true,//如果数据库不存在,是否添加

false//false只修改第一条,true如果有多条就不修改

).getN());

//当数据库不存在就不修改、不添加数据,当多条数据就不修改

//print("修改多条:"+coll.updateMulti(newBasicDBObject("_id",newObjectId("4dde23616be7c19df07db42c")),newBasicDBObject("name","199")));

System.out.println("===============================EDITend=======================================");

//查询所有数据

queryAll();

}

@Test

publicvoidtestOthers(){

//查询所有数据

queryAll();

DBObjectuser=newBasicDBObject();

user.put("name","hoojo");

user.put("age",24);

//JSON对象转换

print("serialize:"+JSON.serialize(user));

//反序列化

print("parse:"+JSON.parse("{"name":"hoojo","age":24}"));

print("判断tempCollection是否存在:"+db.collectionExists("users"));

//如果不存在就创建

if(!db.collectionExists("users")){

DBObjectoptions=newBasicDBObject();

options.put("size",20);

options.put("capped",20);

options.put("max",20);

print(db.createCollection("account",options));

}

//设置db为只读

db.setReadOnly(true);

//只读不能写入数据

db.getCollection("test").save(user);

}

}

Ⅵ 用java连接mongodb3报错,不知道问题在哪

在对超过百万条记录的集合进行聚合操作。 DBObject match=(DBObject)JSON.parse("{$match:{logType:{'$in':[5,9]}}}"); DBObject group=(DBObject)JSON.parse("{$group:{'_id':'$domainUrl','count':{'$sum':1}}}"); AggregationOutput output = logCollection.aggregate(match,group); 偶尔会发生Read timed out 异常。 com.mongodb.MongoException$Network: Read operation to server /192.168.10.202:27017 failed on database adLogTable at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:253) at com.mongodb.DB.command(DB.java:261) at com.mongodb.DB.command(DB.java:243) ... Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) 通过多次测试,发现执行一次聚合平均时间为5s,超过5s时就会报错! 然后查看MongoDB的配置信息: socket-timeout="5000" //5s socket-timeout的默认配置为0,也就是没有限制。 没有超时限制,系统出了问题也不容易发现,应该根据实际情况,给出合理的超时时间。 通过多次测试发现最长执行时间为6秒,就把超时时间设置成了10000。 socket-timeout="10000" //10s 注意:MongoDB在与Spring整合时,如果要配置多个MongDB源,只会启用最后一个<mongo:options>配置。 应该把参数配置信息存储在properties文件中。 <mongo:mongo host="${mongodb.ip}" id="mongo202" port="${mongodb.port}"> <mongo:options connections-per-host="200" threads-allowed-to-block-for-connection-multiplier="100" connect-timeout="1000" max-wait-time="1000" auto-connect-retry="true" socket-keep-alive="true" socket-timeout="10000" slave-ok="true" write-number="1" write-timeout="0" write-fsync="true" /> </mongo:mongo> 通过Java API获取配置参数 DBCollection logCollection = mongoTemplate.getCollection(collName); MongoOptions mongoOptions = logCollection.getDB().getMongo().getMongoOptions(); System.out.println(mongoOptions.getSocketTimeout()); 最后一点: ConnectionTimeOut和SocketTimeOut的区别: 一次完整的请求包括三个阶段: 建立连接 数据传输 断开连接 如果与服务器(这里指数据库)请求建立连接的时间超过ConnectionTimeOut,就会抛 ConnectionTimeOutException,即服务器连接超时,没有在规定的时间内建立连接。 如果与服务器连接成功,就开始数据传输了。 如果服务器处理数据用时过长,超过了SocketTimeOut,就会抛出SocketTimeOutExceptin,即服务器响应超时,服务器没有在规定的时间内返回给客户端数据

Ⅶ 如何用JAVA访问远程服务器端的mongodb

文档很长:
Configuration File
File Format
Use the Configuration File
Core Options
systemLog Options
processManagement Options
net Options
security Options
setParameter Option
storage Options
operationProfiling Options
replication Options
sharding Options
auditLog Options
snmp Options
Text Search Options
mongos-only Options
Windows Service Options
我把与远程连接及log文件有关的标红了, 如果只是修改远程连接, 这几个重点看下就可以.

Ⅷ java怎么做到使用mongodb的原生命令来执行操作

public class MongoDBJDBC {
public static void main(String[] args) {
try {
// 实例化Mongo对象,连接27017端口
Mongo mongo = new Mongo("localhost", 27017);
// 连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立
DB db = mongo.getDB("test");
// Get collection from MongoDB, database named "yourDB"
// 从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立
DBCollection collection = db.getCollection("test1");
// 使用BasicDBObject对象创建一个mongodb的document,并给予赋值。
BasicDBObject document = new BasicDBObject();
//document.put("id", 1001);
//document.put("msg", "hello world mongoDB in Java");
// 将新建立的document保存到collection中去
//collection.insert(document);
// 创建要查询的document
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "chen");
// 使用collection的find方法查找document
DBCursor cursor = collection.find(searchQuery);
// 循环输出结果
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
System.out.println("Hello World");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}

Ⅸ java mongo连接问题,一直超时,原因不知道在哪

在对超过百万条记录的集合进行聚合操作。
DBObject match=(DBObject)JSON.parse("{$match:{logType:{'$in':[5,9]}}}"); DBObject group=(DBObject)JSON.parse("{$group:{'_id':'$domainUrl','count':{'$sum':1}}}"); AggregationOutput output = logCollection.aggregate(match,group);

偶尔会发生Read timed out 异常。
com.mongodb.MongoException$Network: Read operation to server /192.168.10.202:27017 failed on database adLogTable at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:253) at com.mongodb.DB.command(DB.java:261) at com.mongodb.DB.command(DB.java:243) ... Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152)

通过多次测试,发现执行一次聚合平均时间为5s,超过5s时就会报错!
然后查看MongoDB的配置信息:
socket-timeout="5000" //5s

socket-timeout的默认配置为0,也就是没有限制。
没有超时限制,系统出了问题也不容易发现,应该根据实际情况,给出合理的超时时间。
通过多次测试发现最长执行时间为6秒,就把超时时间设置成了10000。

热点内容
世界服务密码是多少 发布:2025-01-25 04:42:52 浏览:48
专车配置有哪些 发布:2025-01-25 04:42:46 浏览:569
java培训班收费 发布:2025-01-25 04:37:53 浏览:766
密码锁如何密码解锁 发布:2025-01-25 04:25:16 浏览:385
ebay如何上传产品 发布:2025-01-25 04:04:37 浏览:823
java判断是否手机访问权限 发布:2025-01-25 04:02:28 浏览:807
天龙八部3困难福地需要什么配置 发布:2025-01-25 04:01:49 浏览:409
phpmysql网站源码 发布:2025-01-25 03:56:49 浏览:755
安卓手机华为手机哪个牌子好 发布:2025-01-25 03:55:55 浏览:25
比亚迪发动机压缩比 发布:2025-01-25 03:55:16 浏览:329