mongodb--java操作
一、mongodb客户端
mongodb提供诸多语言的客户端,也包括java的客户端。通过这些客户端,我们可以很方便地使用编写代码的方式对mongodb进行操作。这里使用java客户端进行示例。使用java客户端首先需要下载jmongodb数据库java驱动。驱动的源码地址为:https://github.com/mongodb/mongo-java-driver/ 。这里工程使用maven构建,需要添加的依赖如下:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.4</version>
</dependency>
二、示例
1、添加文档
DB db = null;
@Before
public void getDb() throws UnknownHostException {
MongoClient mongoClient = new MongoClient();
// mongoClient = new MongoClient("localhost");
// mongoClient = new MongoClient( "localhost" , 27017 );
// mongoClient = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017), new ServerAddress("localhost", 27018), new ServerAddress("localhost", 27019)));
//需要验证的如下
// MongoCredential credential = MongoCredential.createMongoCRCredential(userName, database, password);
// MongoClient mongoClient = new MongoClient(new ServerAddress(), Arrays.asList(credential));
mongoClient.setWriteConcern(WriteConcern.JOURNALED);
System.out.println("===========DatabaseName=============");
for (String s : mongoClient.getDatabaseNames()) {
System.out.println(s);
}
db = mongoClient.getDB("testdb");
}
@Test
public void addDoc() {
DBCollection coll = db.getCollection("person");
BasicDBObject doc = new BasicDBObject("name", "张三")//
.append("age", 20)//
.append("gender", "mail")//
.append("brithday", new Date())
//
.append("info",
new BasicDBObject("location_x", 203).append(
"location_y", 303));
WriteResult result = coll.insert(doc);
System.out.println(result);
for (int i = 0; i < 10; i++) {
BasicDBObject document = new BasicDBObject("name", "zhangsan" + i)//
.append("age", 18 + i)//
.append("brithday", new Date());
WriteResult result2 = coll.insert(document);
System.out.println(result2);
}
}
2、查询文档
@Test
public void findDoc() {
DBCollection coll = db.getCollection("person");
DBObject person = coll.findOne();// 获取集合中的第一个文档
System.out.println("===============findOne======================");
System.out.println(person); // 根据条件查询;db.person.find({age:18});
DBObject query = new BasicDBObject("age", 18);
DBObject person2 = coll.findOne(query);
System.out.println(person2); System.out
.println("===============findByCondtion======================");
// age小于25; db.person.find({age:{$lt:25}});
query = new BasicDBObject("age", new BasicDBObject("$lt", 25));
DBCursor cursor = coll.find(query); try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
System.out.println("===============findAll======================");
// 查询所有并按照age升序;db.person.find().sort({age:1});
cursor = coll.find().sort(new BasicDBObject("age", -1));// 1升序,-1降序
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
}
3、更新文档
@Test
public void updateDoc() {
DBCollection coll = db.getCollection("person");
BasicDBObject query = new BasicDBObject("name", "张三");
DBObject update = coll.findOne(query);
update.put("info", new BasicDBObject("location_x", 1999).append(
"location_y", 2999));
// 方法一
DBObject person = coll.findAndModify(query, update);// 返回的是未更改前的文档对象
System.out.println(person);
// 方法二
update.put("info", new BasicDBObject("location_x", 19998).append(
"location_y", 29998));
WriteResult result = coll.update(query, update);
System.out.println(result);
}
4、删除文档
@Test
public void deleteDoc() {
DBCollection coll = db.getCollection("person");
BasicDBObject query = new BasicDBObject("name", "zhangsan8"); // 方法一
query = new BasicDBObject("name", "zhangsan9");
DBObject person = coll.findAndRemove(query);// 返回的是删除的文档对象
System.out.println(person); // 方法二
query = new BasicDBObject("name", "zhangsan9");
WriteResult result = coll.remove(query);
System.out.println(result);
}
5、集合相关操作
@Test
public void testCollection() {
Set<String> colls = db.getCollectionNames();// 数据库中的所有集合name
for (String s : colls) {
System.out.println(s);
}
System.out.println("======================================="); // 创建一个collection,并在collection中添加document
DBCollection coll = db.createCollection("testCollection",
new BasicDBObject("capped", true).append("size", 1048576));
System.out.println(coll); coll = db.getCollection("testCollection"); // collection中的索引
List<DBObject> list = coll.getIndexInfo();
for (DBObject o : list) {
System.out.println(o);
} coll.drop();
}
mongodb--java操作的更多相关文章
- mongodb java操作常用写法
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组.下面介绍的是用java操作 ...
- 6. MongoDB——Java操作(增删改查)
转自:https://blog.csdn.net/kai402458953/article/details/79626148 import java.net.UnknownHostException; ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- JAVA操作MongoDB数据库
1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...
- [转]MongoDB for Java】Java操作MongoDB
原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...
- mongodb高级操作及在Java企业级开发中的应用
Java连接mongoDB Java连接MongoDB需要驱动包,个人所用包为mongo-2.10.0.jar.可以在网上下载最新版本. package org.dennisit.mongodb.st ...
- Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通 ...
- mongDB基本命令和Java操作MongoDB
上一篇博文<mongoDB安装>我们安装了mongoDB,现在来复习一下它的一些基本命令:mongoDB的bin目录加入到path之后,命令行中输入mongo: 然后我们进入正题 1.查看 ...
- Mongodb快速入门之使用Java操作Mongodb
[IT168 专稿]在上一篇文章中,我们学习了Mongodb的安装和初步使用,在本文中,将学习如何使用Java去编程实现对Mongodb的操作. HelloWorld程序 学习任何程序的第一步,都是编 ...
- Mongodb入门并使用java操作Mongodb
转载请注意出处:http://blog.csdn.net/zcm101 最近在学习NoSql,先从Mongodb入手,把最近学习的总结下. Mongodb下载安装 Mongodb的下载安装就不详细说了 ...
随机推荐
- .NET中的枚举(Enum)
摘要:.NET中的枚举分为简单枚举和标志枚举,这次主要总结一下标志枚举适用条件,以及它的使用方法,并在文章的最后列举枚举使用的一些规范. 在刚接触.NET的枚举时,只用简单的枚举,对于标记枚举,只知道 ...
- [ShortCut] IE10快捷键
适用范围: Windows 8 操作步骤: 1.快速输入网址: “Ctrl+L”.“F4”:在IE10下按下“Ctrl+L”快捷键,可以直接将光标转到浏览器地址栏(注:地址栏中的网址会被选中),可以直 ...
- 树莓派配置静态ip
#vim /etc/network/interfaces 修改为如下内容: auto eth0 iface eth0 inet static address 192.168.0.2 netmask 2 ...
- Winform开发框架之通用数据导入导出操作的事务性操作完善
1.通用数据导入导出操作模块回顾 在我的Winfrom开发框架里面,有一个通用的导入模块,它在默默处理这把规范的Excel数据导入到不同的对象表里面,一直用它来快速完成数据导入的工作.很早在随笔< ...
- ADO.net中常用的对象介绍
ADO.NET的对象主要包括:DataSet,DataTable,DataColumn,DataRow,和DataRelation. DataSet:这个对象是一个集合对象,它可以包含任意数量的数据表 ...
- 重新想象 Windows 8 Store Apps (69) - 其它: 自定义启动屏幕, 程序的运行位置, 保持屏幕的点亮状态, MessageDialog, PopupMenu
[源码下载] 重新想象 Windows 8 Store Apps (69) - 其它: 自定义启动屏幕, 程序的运行位置, 保持屏幕的点亮状态, MessageDialog, PopupMenu 作者 ...
- 容器---List和AbstractList
一.前言 前面我们介绍了Collection及其抽象实现,在JAVA的容器体系里,由Collection派生出来的有两大体系,即List和Map.本文以及后续文章将重点分析List体系.本文将重点分析 ...
- EffectiveJava——用函数对象表示策略
有些语言支持函数指针.代理.lambda表达式,或者支持类似的机制,允许程序把“调用特殊函数的能力”储存起来并传递这种能力.这种机制通常用于允许函数的调用者通过传入第二个函数,来指定自己的行为.比较器 ...
- 【Effective Java】2、构造参数过多的时候
package cn.xf.cp.ch02.item2; /** * * 功能:当我们的构造参数有很多,超出可控范围的时候,用build模式 时间:下午8:25:05 文件:NutritionFact ...
- ASP.NET Web API涉及到的上下文
1.表示请求的上下文:HttpRequestContext; 2.表示HttpController:HttpControllerContext; 3.表示Action方法:HttpActionCont ...