java使用mongodb数据库的方法
这篇文章主要介绍了java使用mongodb数据库的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB。
一、引入MongoDB Java Driver包
如果需要操作MongoDB的Java项目是一个Maven项目,可以在依赖中加上以下的配置。
<dependencies><dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>2.13.2</version></dependency></dependencies>
或者通过直接下载jar包的方式使用,下载地址:mongo-java-driver-2.13.2.jar。
详细的如何引入MongoDB jar包的方法可以参考官方文档。
二、连接MongoDB
可以使用MongoClient来连接MongoDB,MongoClient的使用方式如下:
MongoClientmongoClient=newMongoClient("localhost",27017);DBdb=mongoClient.getDB("mydb");
上面的代码连接了localhost:27017上MongoDB服务,并指定使用mydb数据库。连接后便可以对这个数据库作进一步的操作。
需要指出的是,MongoClient是线程安全的,可以在多线程环境中共享同一个MongoClient。通常来说,一个应用程序中,只需要生成一个全局的MongoClient实例,然后在程序的其他地方使用这个实例即可。
三、认证
可以使用多种方式对连接进行认证,下面介绍两种方式。
1. 方式一:MongoCredential
MongoCredential类的createCredential方法可以指定认证的用户名,密码,以及使用的数据库,并返回一个MongoCredential对象。其方法的声明如下:
staticMongoCredentialcreateCredential(StringuserName,Stringdatabase,char[]password)
例如:
MongoCredentialcredential=MongoCredential.createCredential("user","mydb","password".toCharArray());
上面创建了一个用户名为user,密码为password,数据库为mydb的MongoCredential对象。
将生成MongoCredential的对象作为MongoClient构造函数的参数。由于MongoClient构造函数的为List<MongoCredential>类型,所以需要先构造成一个List再传递。
完整的认证的例子如下:
MongoCredentialcredential=MongoCredential.createCredential("user","mydb","password".toCharArray());ServerAddressserverAddress=newServerAddress("localhost",27017);MongoClientmongoClient=newMongoClient(serverAddress,Arrays.asList(credential));DBdb=mongoClient.getDB("mydb");
2. 方式二:MongoClientURI
亦可以使用MongoClientURI完成MongoDB的认证,它代表了一个URI对象。MongoClientURI的构造函数接受一个String类型的字符串,这个字符串的格式如下:
mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]
生成的MongoClientURI对象作为MongoClient构造函数的参数,完整的认证例子如下:
StringsURI=String.format("mongodb://%s:%s@%s:%d/%s","user","password","localhost",27017,"mydb");MongoClientURIuri=newMongoClientURI(sURI);MongoClientmongoClient=newMongoClient(uri);DBdb=mongoClient.getDB("mydb");
四、获取一个集合
DBCollectioncoll=db.getCollection("mycol");
然后可以对指定的集合进行操作,例如,插入,删除,查找,更新文档等。
五、插入文档
例如,一个文档以Json来表示如下:
{“name”:“mongo”,“info”:{“ver”:“3.0”}}
现在需要插入到集合mycol中。为了插入到集合中,可以使用BasicDBObject构造一个文档。
BasicDBObjectdoc=newBasicDBObject("name","mongo").append("info",newBasicDBObject("ver","3.0"));coll.insert(doc);
六、查找文档
1. 通过findOne查找一个符合条件文档
通过findOne可以查找一个符合条件的文档。例如,对于上面的mycol集合,执行以下命令:
DBObjectmyDoc=coll.findOne();System.out.println(myDoc);
将输出mycol集合中的第一个文档。也可以通过指定findOne的查找参数,来查找符合查找条件的一个文档。
2. 通过find查找所有符合条件的文档
find用来查找符合条件的文档,它返回一个DBCursor对象,通过遍历DBCursor对象,可以获得所有符合查找条件的文档。
为了说明和测试,我们先插入一批以下格式的文档:
{“i”:value}for(inti=0;i<100;i++){coll.insert(newBasicDBObject("i",i));}
find的使用示例如下:
DBCursorcursor=coll.find();try{while(cursor.hasNext()){System.out.println(cursor.next());}}finally{cursor.close();}
会输出mycol集合中所有的文档。
也可以指定查找的条件,例如:
BasicDBObjectquery=newBasicDBObject("i",71);DBCursorcursor=coll.find(query);try{while(cursor.hasNext()){System.out.println(cursor.next());}}finally{cursor.close();}
对于查找条件中包括$操作符的情形,例如以下一条mongo shell命令:
db.coll.find({i:{$gte:50}});
可以使用DBObject生成查找条件,
//findallwherei>=50BasicDBObjectquery=newBasicDBObject("i",newBasicDBObject("$gte",50));DBCursorcursor=coll.find(query);try{while(cursor.hasNext()){System.out.println(cursor.next());}}finally{cursor.close();}
七、更新文档
BasicDBObjectquery=newBasicDBObject("i",70);BasicDBObjectup=newBasicDBObject("$set",newBasicDBObject("i",100));coll.update(query,up);
上面的语句将i为70的文档更新i的值等于100。
与我们常用的更新文档的mongo语句一样,DBCollection还包含了save,findAndModify等更新文档的方法,其使用方法在此不再赘述,可以参考API说明文档即可。
八、删除文档
可以通过生成一个DBObject对象来删除指定的文档,例如:
BasicDBObjectquery=newBasicDBObject("i",71);coll.remove(query);
上面的语句删除i为71的文档。
感谢你能够认真阅读完这篇文章,希望小编分享java使用mongodb数据库的方法内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。