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的下载安装就不详细说了 ...
随机推荐
- IOS开发UI基础storyboard相关概念的认识
本文主要介绍一些基本的概念 为后面的学习做个准备 需要了解的知识点有以下几个方面: storyboard文件的认识 IBAction 和IBOutlet UIViewController控制器的认识 ...
- R语言简单聚类分析
#以R基础包自带的鸢尾花(Iris)数据进行聚类分析iris data <- iris[,:] #系统聚类法(层次聚类法) distance <- dist(data) #计算距离 iri ...
- svn状态图标大全
黄色感叹号(有冲突):--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别 ...
- javaScript一些函数包括调试方法(二)
Number():设法把括号里面的值,转换成一个数,转换不了为数字的话,就返回NaN. 注意:Number()函数,会拒绝任何包含,非数字字符的字符串(阿拉伯数字.一个有效的小数位.+.-符号是允许的 ...
- jQuery数据类型总结
jQuery除了包含原生JS中的内置数据类型(built-in datatype),还包括一些扩展的数据类型(virtual types),如Selectors.Events等. 1. String ...
- 【循序渐进学Python】7.面向对象的核心——类型(上)
我们知道Python是一门面向对象的脚本语言.从C#的角度来看:首先Python支持多继承.Python 类型成员通常都是public的,并且所有成员函数都是virtual的(可以直接重写). 1. ...
- 【Asphyre引擎】学习笔记(二)
转一篇火人论坛那边的一份学习文档,我简单排一下版,希望对入门者有帮助. 感谢China Yang,这份文档也帮助我快速入了门. 和我一起学 Asphyre Sphinx Framework v1.0. ...
- SQL Server Insert时开启显式事务
如果没法避免一条一条的写入,那么在处理前显示开启一个事务 begin tran 在处理完成后 commit 这样也要比不开显示事务会快很多! while i < 10000begin inse ...
- oschina github使用指南
我的github仓库开通,https://git.oschina.net/zhjh256. 1.打开https://git.oschina.net/signup,没有账号的话,则新创建账号. 2.从h ...
- 初识Asp.net Identity
第一篇,多多指教啦! 之前做asp.net的网站只知道Asp.net的身份验证方式有:Windows验证和Forms验证.今天初步了解了下asp.net的Identity技术,顺带了解了它之前的Mem ...