MongoDB Java

环境配置

在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")col1.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();col1.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数据库。

转载于:https://www.cnblogs.com/navysummer/p/8456129.html

MongoDB Java相关推荐

  1. mongodb java driver 聚合框架

    2019独角兽企业重金招聘Python工程师标准>>> Mongo 2.2.0版本介绍了mongo的聚合框架,该框架可以很方便的实现一些聚合操作,例如计数.取和.计算平均值.框架使用 ...

  2. 转载:mongoDB java驱动学习笔记

    http://www.blogjava.net/watchzerg/archive/2012/09/22/388346.html mongoDB java驱动学习笔记 指定新mongo实例: Mong ...

  3. Mongodb java 例子

    该文档是翻译自文档[mongodb-docs-2010-10-24.pdf]的[Java Language Center]章节,根据自己的理解整理而成. 希望能给像我这样开始接触的朋友一点帮助,同时也 ...

  4. MongoDB+java+spirng+morphia

    MongoDB+java+spirng+morphia Hotle.java packagetest_yu.morphiaSpring;importcom.google.code.morphia.an ...

  5. mongodb java 开源_开源的Mongodb java client -- mango发布

    Mango  ----   一个非常简单的操作mongodb的小工具,使用java语言,基于mongodb的java driver包. 其主要的灵感来自于Jongo 项目,这是一个非常有创意的工具,将 ...

  6. MongoDB Java API操作很全的整理以及共享分片模式下的常见操作整理

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...

  7. [MongoDB] Java异步操作Mongo示例

    [MongoDB] Java异步操作Mongo示例 一.问题描述 二.版本说明 1.数据库 2.JDK版本 3.依赖 三.相关代码 1.ObservableSubscriber.java和Consum ...

  8. mongodb java 日志分析_记一次log4j与mongodb集成引发的问题分析

    问题背景 对项目中的关键应用调用链日志需要结构化得统一吐出到mongodb中,同时项目中日志输出使用log4j,故准备使用log4j的Appender直接集成mongodb的输出,同时mongodb采 ...

  9. Date, TimeZone, MongoDB, java中date的时区问题

    打印new Date(),Fri Aug 12 13:37:51 CST 2016. 显示Asia/Shanghai的时区,但是date toString 的时区简写却是CST.更坑爹的是,Googl ...

最新文章

  1. 手机如何开启热点 转
  2. 响应用户呼声 币安更正BCH简称
  3. Python OOP知识积累
  4. idea使用leecode插件
  5. python删除文件一行数据、不使用临时文件_python下tempfile 临时文件删除问题
  6. excel随机抽取_Excel条件格式,扮靓你的报表
  7. Win10 calc.exe 无法打开计算器的解决方法
  8. [CVPR2019]:专门为卷积神经网络设计的训练方法:RePr
  9. 如何在客户端终止一个已经发出的HTTP请求
  10. 002 ceph的deploy部署
  11. Truncated Signed Distance Function: Experiments on Voxel Size
  12. 第二十三:Appium+Pytest实现app并发测试
  13. CentOS 7下sshd防暴力破解及fail2ban的使用方法
  14. 主板插槽接口相关释义
  15. java day28【多表查询 、事务 、DCL】
  16. OVF虚拟镜像的导出方法
  17. proe把零件转化为stl在unity中使用注意事项
  18. 基于Flink CDC实现实时数据采集(一)-接口设计
  19. 软件测试工程师离职原因_这就是软件工程师不离职的原因
  20. Poco库完全使用手册

热门文章

  1. 数据结构和算法笔记:基数排序
  2. php可以在dw中吗,php新手求助,为什么在DW中设计里能看到运行php程序的结果,但…...
  3. Eclipse启动tomcat项目乱码而终端启动tomcat正常的解决办法
  4. spring、mybatis、测试用例执行后数据没有入库
  5. 软考高级报考,科目思维导图概览和介绍
  6. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题HIL
  7. 通用数据接口USB3.0,雷电3,TypeC之间
  8. NYOJ463 - 九九乘法表
  9. 2038年问题 php,php strtotime() mktime() 的2038年问题 Y2K38漏洞
  10. nedtworking