MongoDB教程 专题
您的位置:database > MongoDB教程专题 > MongoDB Java
MongoDB Java
作者:--    发布时间:2019-11-20

环境配置

在java程序中如果要使用mongodb,你需要确保已经安装了java环境及mongodb jdbc 驱动。

你可以参考本站的java教程来安装java程序。现在让我们来检测你是否安装了 mongodb jdbc 驱动。

  • 首先你必须下载mongo jar包,下载地址:https://github.com/mongodb/mongo-java-driver/downloads, 请确保下载最新版本。
  • 你需要将mongo.jar包含在你的 classpath 中。。

连接数据库

连接数据库,你需要指定数据库名称,如果指定的数据库不存在,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数据库。

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册