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的下载安装就不详细说了 ...
随机推荐
- c# XML序列化与反序列化
c# XML序列化与反序列化 原先一直用BinaryFormatter来序列化挺好,可是最近发现在WinCE下是没有办法进行BinaryFormatter操作,很不爽,只能改成了BinaryWrite ...
- IOS开发UI基础UIImagePickerController的属性
UIImagePickerController 1.+(BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType ...
- thread_ThreadPoolExecutor
目录 1.基础知识 2.简单应用 3.异常机制 4.丰富的扩展 一.基础知识 构造函数. public ThreadPoolExecutor( int corePoolSize, 指的是保留的线程池大 ...
- WinForm输入网址打开源码
无聊练习一下WinForm,输入网址,点击按钮就在浏览器打开网址. 源代码下载: http://hovertree.com/h/bjaf/cao15h74.htm
- 设置窗体透明C#代码
上个示例是C#调用windows api 在原来代码上加入窗体透明,控件不透明代码: using System; using System.Runtime.InteropServices; using ...
- 重新想象 Windows 8 Store Apps (53) - 绑定: 与 ObservableCollection CollectionViewSource VirtualizedFilesVector VirtualizedItemsVector 绑定
[源码下载] 重新想象 Windows 8 Store Apps (53) - 绑定: 与 ObservableCollection CollectionViewSource VirtualizedF ...
- YEdit
YEdit YEdit is a YAML editor for Eclipse. See the wiki for more details Installation Use the Eclipse ...
- 你还记的那一年你我学习的-->>用表组织数据*(数据表)
不知不觉,踏上IT之路,光阴似箭,日月如梭.虽好像回到从前,回到那个无忧无虑的童年,回到那个花样少年的青春;回到那个年少幼稚的小学;回到那个整天幻想的初中;回到那个顽强不屈,誓死不弃的高中;回到那个整 ...
- Play 内置模板标签(1.2.3版本)http://www.anool.net/?p=617
a标签: 用来插入一个连接到控制器方法的html link.如下: #{a @Application.logout()}Disconnect#{/a}模板内容被解析后变成: <a href=&q ...
- Backbone学习笔记一Backbone中的MVC
原文章地址http://bigdots.github.io/2015/12/01/Backbone学习笔记(一)/#more Backbone.js为复杂WEB应用程序提供模型(models).集合( ...