环境配置
在java程序中如果要使用mongodb,你需要确保已经安装了java环境及mongodb jdbc 驱动。
你可以参考本站的java教程来安装java程序。现在让我们来检测你是否安装了 mongodb jdbc 驱动。
连接数据库,你需要指定数据库名称,如果指定的数据库不存在,mongo会自动创建数据库。
连接数据库的java代码如下:
import com.mongodb.mongoclient; import com.mongodb.mongoexception; import com.mongodb.writeconcern; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.basicdbobject; import com.mongodb.dbobject; import com.mongodb.dbcursor; import com.mongodb.serveraddress; import java.util.arrays; public class mongodbjdbc{ public static void main( string args[] ){ try{ // 连接到 mongodb 服务 mongoclient mongoclient = new mongoclient( "localhost" , 27017 ); // 连接到数据库 db db = mongoclient.getdb( "test" ); system.out.println("connect to database successfully"); boolean auth = db.authenticate(myusername, mypassword); system.out.println("authentication: "+auth); }catch(exception e){ system.err.println( e.getclass().getname() + ": " + e.getmessage() ); } } }
现在,让我们来编译运行程序并创建数据库test。
你可以更加你的实际环境改变mongodb jdbc驱动的路径。
本实例将mongodb jdbc启动包 mongo-2.10.1.jar 放在本地目录下:
$javac mongodbjdbc.java $java -classpath ".:mongo-2.10.1.jar" mongodbjdbc connect to database successfully authentication: true
如果你使用的是window系统,你可以按以下命令来编译执行程序:
$javac mongodbjdbc.java $java -classpath ".;mongo-2.10.1.jar" mongodbjdbc connect to database successfully authentication: true
如果用户名及密码正确,则authentication 的值为true。
我们可以使用com.mongodb.db类中的createcollection()来创建集合
代码片段如下:
import com.mongodb.mongoclient; import com.mongodb.mongoexception; import com.mongodb.writeconcern; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.basicdbobject; import com.mongodb.dbobject; import com.mongodb.dbcursor; import com.mongodb.serveraddress; import java.util.arrays; public class mongodbjdbc{ public static void main( string args[] ){ try{ // 连接到 mongodb 服务 mongoclient mongoclient = new mongoclient( "localhost" , 27017 ); // 连接到数据库 db db = mongoclient.getdb( "test" ); system.out.println("connect to database successfully"); boolean auth = db.authenticate(myusername, mypassword); system.out.println("authentication: "+auth); dbcollection coll = db.createcollection("mycol"); system.out.println("collection created successfully"); }catch(exception e){ system.err.println( e.getclass().getname() + ": " + e.getmessage() ); } } }
编译运行以上程序,输出结果如下:
connect to database successfully authentication: true collection created successfully
我们可以使用com.mongodb.dbcollection类的 getcollection() 方法来获取一个集合
代码片段如下:
import com.mongodb.mongoclient; import com.mongodb.mongoexception; import com.mongodb.writeconcern; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.basicdbobject; import com.mongodb.dbobject; import com.mongodb.dbcursor; import com.mongodb.serveraddress; import java.util.arrays; public class mongodbjdbc{ public static void main( string args[] ){ try{ // 连接到 mongodb 服务 mongoclient mongoclient = new mongoclient( "localhost" , 27017 ); // 连接到数据库 db db = mongoclient.getdb( "test" ); system.out.println("connect to database successfully"); boolean auth = db.authenticate(myusername, mypassword); system.out.println("authentication: "+auth); dbcollection coll = db.createcollection("mycol"); system.out.println("collection created successfully"); dbcollection coll = db.getcollection("mycol"); system.out.println("collection mycol selected successfully"); }catch(exception e){ system.err.println( e.getclass().getname() + ": " + e.getmessage() ); } } }
编译运行以上程序,输出结果如下:
connect to database successfully authentication: true collection created successfully collection mycol selected successfully
我们可以使用com.mongodb.dbcollection类的 insert() 方法来插入一个文档
代码片段如下:
import com.mongodb.mongoclient; import com.mongodb.mongoexception; import com.mongodb.writeconcern; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.basicdbobject; import com.mongodb.dbobject; import com.mongodb.dbcursor; import com.mongodb.serveraddress; import java.util.arrays; public class mongodbjdbc{ public static void main( string args[] ){ try{ // 连接到 mongodb 服务 mongoclient mongoclient = new mongoclient( "localhost" , 27017 ); // 连接到数据库 db db = mongoclient.getdb( "test" ); system.out.println("connect to database successfully"); boolean auth = db.authenticate(myusername, mypassword); system.out.println("authentication: "+auth); dbcollection coll = db.getcollection("mycol"); system.out.println("collection mycol selected successfully"); basicdbobject doc = new basicdbobject("title", "mongodb"). append("description", "database"). append("likes", 100). append("url", "//www.w3cschool.cn/mongodb/"). append("by", "w3cschool.cn"); coll.insert(doc); system.out.println("document inserted successfully"); }catch(exception e){ system.err.println( e.getclass().getname() + ": " + e.getmessage() ); } } }
编译运行以上程序,输出结果如下:
connect to database successfully authentication: true collection mycol selected successfully document inserted successfully
我们可以使用com.mongodb.dbcollection类中的 find() 方法来获取集合中的所有文档。
此方法返回一个游标,所以你需要遍历这个游标。
代码片段如下:
import com.mongodb.mongoclient; import com.mongodb.mongoexception; import com.mongodb.writeconcern; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.basicdbobject; import com.mongodb.dbobject; import com.mongodb.dbcursor; import com.mongodb.serveraddress; import java.util.arrays; public class mongodbjdbc{ public static void main( string args[] ){ try{ // 连接到 mongodb 服务 mongoclient mongoclient = new mongoclient( "localhost" , 27017 ); // 连接到数据库 db db = mongoclient.getdb( "test" ); system.out.println("connect to database successfully"); boolean auth = db.authenticate(myusername, mypassword); system.out.println("authentication: "+auth); dbcollection coll = db.getcollection("mycol"); system.out.println("collection mycol selected successfully"); dbcursor cursor = coll.find(); int i=1; while (cursor.hasnext()) { system.out.println("inserted document: "+i); system.out.println(cursor.next()); i++; } }catch(exception e){ system.err.println( e.getclass().getname() + ": " + e.getmessage() ); } } }
编译运行以上程序,输出结果如下:
connect to database successfully authentication: true collection mycol selected successfully inserted document: 1 { "_id" : objectid(7df78ad8902c), "title": "mongodb", "description": "database", "likes": 100, "url": "//www.w3cschool.cn/mongodb/", "by": "w3cschool.cn" }
你可以使用 com.mongodb.dbcollection 类中的 update() 方法来更新集合中的文档。
代码片段如下:
import com.mongodb.mongoclient; import com.mongodb.mongoexception; import com.mongodb.writeconcern; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.basicdbobject; import com.mongodb.dbobject; import com.mongodb.dbcursor; import com.mongodb.serveraddress; import java.util.arrays; public class mongodbjdbc{ public static void main( string args[] ){ try{ // 连接到mongodb服务 mongoclient mongoclient = new mongoclient( "localhost" , 27017 ); // 连接到你的数据库 db db = mongoclient.getdb( "test" ); system.out.println("connect to database successfully"); boolean auth = db.authenticate(myusername, mypassword); system.out.println("authentication: "+auth); dbcollection coll = db.getcollection("mycol"); system.out.println("collection mycol selected successfully"); dbcursor cursor = coll.find(); while (cursor.hasnext()) { dbobject updatedocument = cursor.next(); updatedocument.put("likes","200") coll.update(updatedocument); } system.out.println("document updated successfully"); cursor = coll.find(); int i=1; while (cursor.hasnext()) { system.out.println("updated document: "+i); system.out.println(cursor.next()); i++; } }catch(exception e){ system.err.println( e.getclass().getname() + ": " + e.getmessage() ); } } }
编译运行以上程序,输出结果如下:
connect to database successfully authentication: true collection mycol selected successfully document updated successfully updated document: 1 { "_id" : objectid(7df78ad8902c), "title": "mongodb", "description": "database", "likes": 200, "url": "//www.w3cschool.cn/mongodb/", "by": "w3cschool.cn" }
要删除集合中的第一个文档,首先你需要使用com.mongodb.dbcollection类中的 findone()方法来获取第一个文档,然后使用remove 方法删除。
代码片段如下:
import com.mongodb.mongoclient; import com.mongodb.mongoexception; import com.mongodb.writeconcern; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.basicdbobject; import com.mongodb.dbobject; import com.mongodb.dbcursor; import com.mongodb.serveraddress; import java.util.arrays; public class mongodbjdbc{ public static void main( string args[] ){ try{ // 连接到mongodb服务 mongoclient mongoclient = new mongoclient( "localhost" , 27017 ); // 连接到你的数据库 db db = mongoclient.getdb( "test" ); system.out.println("connect to database successfully"); boolean auth = db.authenticate(myusername, mypassword); system.out.println("authentication: "+auth); dbcollection coll = db.getcollection("mycol"); system.out.println("collection mycol selected successfully"); dbobject mydoc = coll.findone(); coll.remove(mydoc); dbcursor cursor = coll.find(); int i=1; while (cursor.hasnext()) { system.out.println("inserted document: "+i); system.out.println(cursor.next()); i++; } system.out.println("document deleted successfully"); }catch(exception e){ system.err.println( e.getclass().getname() + ": " + e.getmessage() ); } } }
编译运行以上程序,输出结果如下:
connect to database successfully authentication: true collection mycol selected successfully document deleted successfully
你还可以使用 save(), limit(), skip(), sort() 等方法来操作mongodb数据库。