java客户端连接MongoDB数据库的简单使用

时间:2023-03-08 19:39:36
java客户端连接MongoDB数据库的简单使用

1、下载mongoDB的jar包,并引入到工程的CLASSPATH中下载:mongodb2.5驱动包下载

如果使用maven项目,最新的依赖如下:

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.2.0</version>
</dependency>

需要特别注意的是如果工程不是maven项目而是通过引入jar包的方式,那么在mongdb3.X之后,除了要引入mongo-java-driver之外,还需要手动引入bson和mongo-java-core的两个jar包,因为driver依赖这两个包,而且版本最好要一致,不然会报各种找不到jar包的错误。而如果是工程是maven项目那么就只需要引入mongodb的driver依赖即可,maven会自动去下载bson和mongo-java-core的依赖jar包。如下截图所示:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZcAAABLCAIAAAAzj126AAARfklEQVR4nO1dT28bxxXfj+CvUKfJUfBBB4Efw0cDOvTCY3LwIchNFnIKHIRRk9IFggA5RIgPBBS5YmUnLWpCBYwmchwf2BRELdtxagMrWZIVS6QlZ3tYkjvvzXszs8udJZd8PzwY1u78n3m/nfd2uC+IJg3NahBUap1xN8M3ZqCbYateb4WDv9qNpaUl5W+BJ7QbhY5zu7G01Gg7JPLSpu3t7e3t7SD/gkdDEATV5rgb4ROdWiUIgqnvZox2YymBda1POcBg9OFBtQtjsbBVt3ahn8bb5E8oiwkEAoEjhMUEAkG5kT+LbT8TERERKUiExURERMotwmIiIiLlliJY7O7mO7fqb93805ubn77515U3Nz5+48ZHb6x/eP7rq+fvbr4z9iEQEREptRTBYrfqb/32ev+3V/97ffKf1y/+dbZ38/Wz62dP/nz68Oqt+ltjHwIREZFSSxEsBvZif/z9xsdv/OWj8+sfnv/66u+may/WuTwfBIvN+M+VxSCYr63lVJouI5c/mdK5PD+V/RLxKEWw2IMne+99uvng6dHhy97hy96rV68OX3YfPD1679PNB0/2xj4E+UmRLFaQtq8sBgNULt/hkjUvBgnmljtsgatVWzLv/VpbrgQQF1dxX+AVKldpeJbuTilEmyl2BWZhsbOzM3cW27q3c/XLrcfh8e7hydFx9+i4e9LrHR33wsOTx+Hx1S+3tu7tjH28cpJC92IFyNpyZagAa8sVbhmtLCqUtFplGWq1mpRwpzZn5jufnQqC6gqfgJy4teWKcrFMG8by7tnRTBlWYBYW29jY6Ha7jiz2xY3vvvq2/fPu8fOj7km3d9LtvT57ddLtPX/RfbJ7/NW37S9ufDf28cpJpo3FgNypzbk91ZmO4+5AXihOrCy2fac2p2kLbq3zaIxfqO6UQrSZal5knnypWez09HR1ddVMZGoF73/2zd/v/vw4PA4Pu78ed39N9mLdR+HxL+Gv73/2DdeNlcUgWGwmG8v52hrYZ8K1eKc2R5sJff1hMwIzp4m5gy0W5w0WawSLqdmtlGQrbSXuwnxtTSELnTXAFbUBSjK9QAdlGIHF9Ozq1ozN3rk8P2x9MmupG2/SDaWiflGdy/NYWzTOTSw1ujHOywYtOao0fhCctIPoThrNImrPtORsamifKY3FBhVl2YudnJxsbGzEXGZlsbc/WAsPuxu37p67cOmTzzee7x+du3DppHc2vPJP3qKMnTL9dg+Hpj/fzYsqL6xWwVoBBkt/GgZ/gozxmA4z9t1ATsXiuyhv/084tVafkaU0hQeTdYPoQOULcAvYQXqBRnHeGHLd1HcEzB5B1Ye15WoejTfrBlH+9moVpaH2Yv3GE40xLhvzktNLMw+Cs3aA7rjnpWvPsuRMaugyUyuLkPiUirKwmEpk5I5Mbcoflq7vHfXOXbi0H+6fu3Dp6ORs+G985R/f/5frBqJ81A3lLrHVVIYAezGUW3pGVV3NxZrzaoNusWVSl6Z0HzxsUcfBLgDrnuVhqD6HnXxYsT6QmyN958Vs7lhLXFFFt8YbdEMFWQ52ikMWAxqoNSbnZWMaBCftILqTJi9Ze4YlZ1BDp5mCSwVUlJHFoig6ODhYXV3d2tryy2Lk7gMtLFIfErWhPDLx8BEZlcTmYs15yaWAmtRHxtLgnqVCMBo0atBq0ArUmkQtKYNFuWa272gWs1qU6kvSwGDR4HGzdMTOgGjtIY1SaQg3JvdlYxgEF+3gEqfKq9WefsnxamhaUcxzC1aUkcW63a7jXuztD9ae7R9/8vlGbD/uvzw9d+HSwcvT4RWLRTmdLKbJaCyWZFepwejJyvDyAU0HbqrZa5bFLxYf4BisXX4bkkocWQyRrOFdhGcWMw6CMxOh7jjnZWtPv+RGYjFsgcKKsrDY0CnGOfjVprz/2Td/+/6n3Re9vaPe3tGrgfT2jnq7L3q/hPtW777jWFssSnr49IzqYKU1DcyGhln3HEozsJjqr016yr7TsTXGaTrAdTfjVG0Mxwucvw8/mX2zmG40ObLY6MtGLc08CO4sBrvjmpevPf2SG5HFkLcRVJSaxdK+o/zixnebt28/fvrg34+e3n+4e//h7o87z3/c2W0/evrz053N27cNJy3c5wnbO6DDpuFbWQR2B/KtGou15LW8KCA7ay7NyGLxgpuDXgnc/ju1uRQHQZoX8WkdsIZUrmf6pfuYyYc2o8bqiPUtCH8sRhwBwwvMlcVGXjZ4WvlBSMFi4EoaFqNrT7/kRmYxOEdqRRn3Yu7nxbbu7Vy7fvPsxQ/H+/cPdtsHu+3n4U8He+3jg/tnL364dv2m4dRrunlSjykAU8UyfKrZf3FVexnHFmvJC16ZJ94Bk1hLM7FYzAXkcc0htJMWFiIA3gdtPSl2twaDLa+PBttTcBTAr0VJHmRNCDoVi42+bHROpAchDYvh0yFp9gd67emX3OgsNlhscJMRZPOLpTq7v/0s2rq38+7K+lL9xpVr61eurV+59vWVa+tL9RvvrqxP3sH9CTtrOnvCe9+mtTHFLbmJGtscJQuLWTH2XmWXEp3Jnk4hjmiOUwo4+F7kkivtOX6zzDqLrS1XFJ2hd8gixYnhNe60iCy53GXWWWwbHYeZxv12KWTo45iFjbAsOUXAB1F0B66LCIuJiIiUW4TFREREyi1eWEwgEAiKBMtipwsLIiIiuUjxij1TMLFY8a0RCKYPokq+4Z3FzJHccqlCIJhkCIv5hncWM0dyy6UKgWCSISzmG8XuxbRIboaMzWoQVGqdXBpRDnRqlVnr8kxAWMw3vLOYOZKbIePYWayZ/KTX0I4m+OGvob324ryzWNiqL0E02ur9dgNfoXLVW6G3FuYKujvFI4MqaTNVmkGn4H0iUrOY9dfgKlwiuXF5x8tinVql2kz+zzWlWVVuNKssQ6mdGd+WK2zVzcup3SD0JWzVlYthq14anSK7UzyyslgyU2UadAq+JyI1i1m/zKPCJZIbl3fse7EEnVolCIakZgDTZpy/U6uMpWtWFkOMRV+zlzIxoLpTPEZnsYkh5KzwPBHpWMzlK4kqXCK5cXn7jNCpJd8rAkSSWGjgsppeo46g2lTuu/CSmtWekGYxPTvDdvAy3fM4TTO+l5IKGf5Rn/TEctMuJQZCrFvt2PwZpoHmEK6v3VDMpLbaIqo0taykpLgFyb16KwRJhymJ7jjnpWvX6QRcUXMMLp4uLMTdZGohYGcxqiI0vsP8/cz0WGqlgZuhseW4Ln5wGBrjlwq9tJjFk3ovZo3kpsIlkhuXt89SQ0UFhhjQ92Zt+L8q0HiQpQMVHyU1wJnDOFNR33oxmzFod1bZnqdhYBUOLEY4Mai9WP/v/qLSFjZnC8WLFmjXEmQxrEMNkHVQUJwSE53CM7AO0B33vHTtSFPVMdX5rN4KhyyGmm/dEyPWVjMwFaEb7RYYLvM0MFMW8i2n6sI0poy+7hwzLhVqMbCLJ4t33xzJTYVLDCQur04zCZ3QxELscJSEmGNs5JRshZx2PHFyMqneLqZu1ohuVofJ3dlXh+YzJjUJLzfIYmDpaepIGD6KQup3gbZalBtphFIQygjv4u6kyUvWDsZD6UDYqtP032cxhvpIoJmCSdmKuHL1gTVOCu4U3XK6Ln2xcM8Tc70uSytJnvEdpSGSm4pRWQypdHJpQDFqApIaUBbdwowiaLtxbi0HwuPYjmYxq0UJX3+qLMbSKmtmKLftHi203JBG4Uet1WU2TETc1VhMa7ViQ8BtAK8QaPNIJE6VV6tdSYP+S6DRTixK8zhx44L1ma8ouWewedEl85RptzHBaXXRg6OPvKVel6U1GouZI7mpcInkxuU1slgURQr50DSFshhYzA5lM4TQb4SpoCx+sZjBBpnQXizrmwFXv7z+VpLxzHpmsZhD1NtZWMy0PzDlZWtPWq2WzA/uiCyGecx9I6fagfmzGF0X3BiyDDdmFrNGclPhEsmNy6ubTrQCJ+kcLMq8WczNvsNbL+4dZdIBws9fIIvpRpMji6W2KDX7lN/p4e2JO4vBC655+dqHhUDTjjVGR2YxyzjRULLoFqWBLmDtNhYjmtcfQmrZqNccLErL0kpq9fuO0iWSG5cXu7FVwlBc36paY9MPcEwqFmtW8UsCsC9SKYUpAvKbdl6MKg2xWNLZiqtFaYGTd394SX1qurIYdsESrnbsYzOzmGrFZbQoI117XFmMrn2YrQ79U7jvYaveaEe5sBjlctcrUt9HYKLSpgHu7bgp41mMqav/Z73RqDNLjeuFvlQI0qIXj9/zYi6R3Li84EiB9l6OPQnPnqVPuRcDJzbUZIw/DVdKVqcXp1EaeqUal+fXoiRYjPVmR1oi/RZwJlHlJq4ci18scQHVW2FmixLmcM/L1Z70Q+s78FkN7ubBYljpyYoiMLx1RDJtJQtlypFTZtqLkXUpd8gOwnHkl4rVSaouHr9n96PIEsktVVFTD8PWrnhgtfUCZxt3ZBTSHRpj/x2lmwmaI0zTmt9EjPyOUuAB4zrSz8CwB8uziqK4pYDuMBi7KhXNYuahzmsilMUjLDYxmKCfXPlC2Kpj62c8xFIoxq5KBbOYp22vYfEIi40fQxfYxFiTHgE8IWMy8QoGr0rwOBrtSMwBhbFY31vnrS5u8QiLCQR+IarkG8JiAoFfiCr5hrCYQOAXokq+ISwmEPiFqJJvCIsJBH4hquQbEslNIPALYTHfkEhuAoFfCIv5xuRGcisb2F9Ejl6ajhk4IVsYvEdzERbzjcmN5FY2FMli0xy5cvoC6J0uLKCTrfC0L33WHX8MsTQ/chjDL1YnN5Jb2VDoXmxaMZUB9E4XFsx6TZ6t1z9VWRYiK/zH5xMcya1sEBbLG9MSQM/KYuQPpKkv1pbkJ1uF//B+siO5qYHXKrUO+EoXXN6ZA7gBi6OJ9YYtFucNqjWCxdgwdFyHTaWp0duGeqsrMLjCRBRwDgfH2GP8sNAlWwIbMJiWAHoMi6nbK0LvtUvwE2kSQK8xwq/BC47kBr7iGoBvBdKfgY2Q7WAK4Ia+DWv6uiwulmwC+oQrF4aO7a2lNEUjuW9b8x+3Th8ODllqnVqNGnvUNaJkvhlGTE8APQcWI7xJhugB+Nutg0vg66+zE0Bv0iO54YBA+NnYIRJGkWsAN3OENXOxluhspjB09r7aS0Of6YYkkXRca4Eam8SskVx7zcOil2xqBluv+6atDAH0NO++w0dQqZgnkHcwh6UJd6B9YtdgqqJP7OKP43BxB6hv47rmJWvXYkEMrkeTHsmN3H1EUaTqQubQR0RGQ7ARWKw5r2MYuqGqpi8Nu611RqO/ps1xsEuT9HYRrcElm5oxKwH07H6xKIo0vUfvKPmwKrmHnhpc1Gg31YfCicSp8mq1K2nAf6NJj+Q2nSymYTQWS9KqWppy7+fQJP66jcUyv6XgP+ENQ6qQyOIXa/oIoOfIYsRbScdwBzmzGPxqfuZwB/pm0ikvW3vSahgcIZr0SG4uLJY9gBtNDlktSi2akZMGcTeZ2EhMhuRNCGlzO9TnnMTBogS3R3pby7GYm32Ht16cLcs5GS3+BWe4spgE0DPWPiwEBdCLJj2SmxOLaaaH7sFngg4h/zXy4BqLteS1vCggO2suzchi8d8V6IHC7VfOYrnopN595bFgHBbCGUU3gxoG9NqAfC7wWzRDa3hPI2SxwWW42/PAYhJAL58AetGkR3JzY7HBbdLJYmIxlK9/HgO/X2N9N4a8cWu5MHRsf42lmVgM06DaWaL5rjoJ2+QyLGTJXDMIgKQaJ6s8imFwIOjFscMLXi74tSglgF5uAfQkkpuK0bw4gnLCsLXLBal+zCcB9DJAvi+mQEhsFmE5+jE60qmSBNBLj5lmsU6tgt+we13OggnESK8fnDB2VZr6AHozzWIR8vDINmyWgH8P4g2ToErTHUDPxGIiIiK5SPGKPVNgWUwgEAhKAZbFfjkSERGZCSk7hMVERGZdyo6Yxf4P5aN/ea0W7xoAAAAASUVORK5CYII=" alt="" />

2、链接mongoDB服务器,并选择数据库
要建立MongoDB的连接,你只要指定要连接到的数据库就可以。这个数据库不一定存在,如果不存在,MongoDB会先为你建立这个库。同时,在连接时你也可以具体指定要连接到的网络地址和端口:
Mongo m = new Mongo();
// 或者
Mongo m = new Mongo( "localhost" );
// 或者
Mongo m = new Mongo( "localhost" , 27017 );
// 或者, to connect to a replica set, supply a seed list of members
Mongo m = new Mongo(Arrays.asList(new ServerAddress("localhost", 27017),
new ServerAddress("localhost", 27018),
new ServerAddress("localhost", 27019)));
DB db = m.getDB("mydb" );

3、安全验证(可选)

 boolean auth = db.authenticate(userName, password);

4、获取集合列表。每个数据库都存在零个或多个集合,需要时你可以获得他们的列表:

Set<String> colls = db.getCollectionNames();

for (String s : colls) {
System.out.println(s);
}

5、获得一个集合。要获得某个特定集合,你可以指定集合的名字,并使用getCollection()方法:

DBCollection coll = db.getCollection("blog");

6、插入文档

mongodb存储JSON格式的文档,而在Java中表示这种数据格式的最简便的类就是Map了。MongoDB Java Driver中提供的BasicDBObject就是个Map(它继承自LinkedHashMap并实现DBObject接口),它会将Map中的数据转换成BSON格式传输到mongodb。

BasicDBObject doc = new BasicDBObject();
doc.put("name", "MongoDB");
doc.put("type", "database");
doc.put("count", 1);
BasicDBObject info = new BasicDBObject();
info.put("x", 203);
info.put("y", 102);
doc.put("info", info);
coll.insert(doc);

mongodb中每个插入的文档会产生个唯一标识_id。当调用coll.insert(doc);时,driver会检查其中是否有_id字段,如果没有则自动生成ObjectId实例来作为_id的值,这个ObjectId由4部分编码而成:当前时间、机器标识、进程号和自增的整数。insert函数也支持插入文档列表:insert(List list)

7、查询

find函数是查询集合的,它返回的DBCursor是DBObject的迭代器。如下代码:

BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cursor = coll.find(query);
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}

8、建立索引

创建索引语句如:coll.createIndex(new BasicDBObject(“i”, 1)); ,其中i表示要索引的字段,1表示升序(-1表示降序)。可以看到,DBObject成为java客户端通用的结构表示。查看索引使用DBCollection.getIndexInfo()函数。