环境配置
在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数据库。