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的下载安装就不详细说了 ...
随机推荐
- 利用session做国际化引起的old区内存爆满及修复方法
题记:昨天加班打车回家,看见前面有辆路虎在高速上开的巨慢,挡住了我坐的出租车的路,于是就跟司机吐槽了一句:“前面这车怎么这么面啊?”,司机沉默了大概3秒,说了一句富含哲理性的话:“没有面车,只有面人” ...
- Struts2 之 实现文件上传和下载
Struts2 之 实现文件上传和下载 必须要引入的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar 01.文件上传需要分别在struts.xm ...
- 对Mathsapp的测试以及找bug
组员博客地址: 练思明 卓嘉炜:http://www.cnblogs.com/luoliuxi/ 何宇明:http://www.cnblogs.com/40heyuming/ 团队贡献分: 练思明:2 ...
- MVC WebApi跨域ajax接受post数据笔记
后端api代码示例: [HttpPost] public string callbackUrl([FromBody]SZRCallBackModel cbm) { try { if (cbm == n ...
- imfong.com,我的新博客地址
imfong.com新博客采用jekyll+Github搭建,欢迎访问.
- jquery ajax跨域访问webservice配置
1.webservice方法 [System.Web.Script.Services.ScriptService] public class TestService : System.Web.Serv ...
- CRC16校验码生成
/// <summary> /// 计算CRC-16 /// </summary> /// <param name="data"></pa ...
- 找到MVC框架中前端URL与后端同步的解决方案
基本思路: 先用URL标签生成完整的URL字符,前端动态参数的部分以适配符先填充,最后动态参数利用正则匹配进行替换. 这种方式,可以在各种MVC框架中适用,妙. 不废话,上码. var url = & ...
- Ubuntu14.04安装ROOT集群
之前尝试在CentOS7上部署ROOT集群,却发现无论是源码包安装,还是官方提供的二进制包,都缺少了关键的xproofd可执行文件,导致PoD不能运行.没有办法,只能尝试在其他OS上部署,这里我选择了 ...
- Java文件编码自动转换工具类(只改变编码,不会改变文件内容)
本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. public class Cha ...