MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。下面介绍的是用java操作MongoDB的一些常用写法。

  1.引用java操作MongoDB驱动包

 <dependency>
   <groupId>org.mongodb</groupId>
   <artifactId>mongo-java-driver</artifactId>
   <version>3.6.0</version>
 </dependency>

  2.java操作MongoDB一些常用写法

public class MongoDBTest
{
//定义一个客户端
private MongoClient client = null; //定义一个MongoDB数据库
private MongoDatabase database = null; @Before
public void init()
{
//连接MongoDB客户端
client = new MongoClient("127.0.0.1", 27017);
//使用数据库mongoDataBase
database = client.getDatabase("mongoDataBase");
} /**
*
* @描述:向user集合中添加一条数据
*/
@Test
public void testInsertOne()
{
//获取user集合
MongoCollection<Document> collection = database.getCollection("user");
Document document = new Document();
document.append("userName", "jack");
document.append("age", 23);
document.append("sex", "男");
collection.insertOne(document);
} /**
*
* @描述:向user集合中添加多条数据
*/
@Test
public void testInsertMany()
{
//获取user集合
MongoCollection<Document> userCollection = database.getCollection("user");
//定义多个Document对象
Document document1 = new Document("userName", "lily");
document1.append("age", 24);
document1.append("sex", "男");
Document document2 = new Document("userName", "mary");
document2.append("age", 30);
document2.append("sex", "女");
Document document3 = new Document("userName", "小吴");
document3.append("age", 27);
document3.append("sex", "男");
userCollection.insertMany(Arrays.asList(document1, document2, document3));
} /**
*
* @描述:删除user集合中数据
*/
@Test
public void remove()
{
//获取user集合
MongoCollection<Document> userCollection = database.getCollection("user");
//执行删除的方法(删除age=23的所有人)
//构造删除条件
Bson delBson = Filters.eq("age", 23);
//一次性删除所有符合条件的数据(删除age=23的所有人)
userCollection.deleteMany(delBson);
} /**
*
* @描述:删除user集合中数据(带多个删除条件的)
*/
@Test
public void remove2()
{
//获取users集合
MongoCollection<Document> userCollection = database.getCollection("user");
//执行删除的方法(删除age>=20 并且 age<=30的所有人)
//构造删除条件(age>=20)
Bson delBson1 = Filters.gte("age", 20);
//构造删除条件(age<=30)
Bson delBson2 = Filters.lte("age", 30);
//合并删除条件
Bson delBson = Filters.and(delBson1, delBson2);
userCollection.deleteMany(delBson);
} /**
*
* @描述:查询出user集合中所有数据
*/
@Test
public void testGetAll2()
{
//获取user集合
MongoCollection<Document> userCollection = database.getCollection("user");
//查询所有文档
FindIterable<Document> allDocuments = userCollection.find();
//获取迭代器
MongoCursor<Document> iterator = allDocuments.iterator();
while (iterator.hasNext())
{
Document document = iterator.next();
System.out.println(document);
}
} /**
*
* @描述:有条件查询user集合数据
*/
@Test
public void testGet()
{
//获取users集合
MongoCollection<Document> userCollection = database.getCollection("user");
//查询age>=25 并且age <=30的人
Bson queryBson = Filters.and(Filters.gte("age", 25), Filters.lte("age", 30));
FindIterable<Document> allDocuments = userCollection.find(Filters.and(queryBson));
//获取迭代器
MongoCursor<Document> iterator = allDocuments.iterator();
while (iterator.hasNext())
{
Document document = iterator.next();
System.out.println(document);
}
} /**
*
* @描述:分页查询出users集合中的数据
*/
@Test
public void testGet2()
{
//获取users集合
MongoCollection<Document> userCollection = database.getCollection("user");
//查询前两个数据,skip(0):跳过0个,limit(2)查询2个
FindIterable<Document> allDocuments = userCollection.find();
FindIterable<Document> page = allDocuments.skip(0).limit(2);
//获取迭代器
MongoCursor<Document> iterator = page.iterator();
while (iterator.hasNext())
{
Document document = iterator.next();
System.out.println(document);
}
} /**
*
* @描述:修改操作
*/
@Test
public void update()
{
//获取user集合
MongoCollection<Document> userCollection = database.getCollection("user");
////修改 将userName为"lily" 的age改为25
//db.users.update({"userName":"lily"},{$set:{"age":25}});
//条件
Bson eqBson = Filters.eq("userName", "lily");
//要修改的内容
Document updateBson = new Document("$set", new Document("age", 25));
UpdateResult updateMany = userCollection.updateMany(eqBson, updateBson);
System.out.println(updateMany.toString());
} @After
public void close()
{
client.close();
} }

注意:本文仅代表个人理解和看法哟!和本人所在公司和团体无任何关系!

mongodb java操作常用写法的更多相关文章

  1. mongodb客户端操作常用命令(续)

    之前有写过一篇mongodb客户端的操作常用命令 ,今天接着来记录分享一些关于mongodb账户权限设置的命令操作 上期mongodb客户端的操作常用命令地址:https://www.cnblogs. ...

  2. Java代码常用写法总结

    1.字符串是否为空判断 以下是java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equal ...

  3. mongodb客户端操作常用命令

    一启动mongodb数据库mongod --dbpath E:\mongo\data\db(这里些自己的mongodb数据库存放目录)二客户端操作1.显示数据库集合show dbs2.新建数据库use ...

  4. 6. MongoDB——Java操作(增删改查)

    转自:https://blog.csdn.net/kai402458953/article/details/79626148 import java.net.UnknownHostException; ...

  5. Java多线程常用写法,使用匿名内部类

    匿名内部类是基于抽象类和接口而言的. //匿名内部类(解决定义过多文件的问题,标准开发一个类就是一个文件) // new Runnable() { // @Override // public voi ...

  6. java 操作mongodb查询条件的常用设置

    java操作mongodb进行查询,常用筛选条件的设置如下: 条件列表:BasicDBList condList = new BasicDBList(); 临时条件对象:BasicDBObject c ...

  7. Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通 ...

  8. mongDB基本命令和Java操作MongoDB

    上一篇博文<mongoDB安装>我们安装了mongoDB,现在来复习一下它的一些基本命令:mongoDB的bin目录加入到path之后,命令行中输入mongo: 然后我们进入正题 1.查看 ...

  9. java 对mongodb的操作

    java 对mongodb的操作 1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017 Mongo mg = newMongo( ...

随机推荐

  1. 【Movie】绿皮书

    今天和室友一起去看了<绿皮书>,一部获得奥斯卡的电影. 起初我是没什么太大期望的,纯粹是因为特价票10块钱,加上身边一个小姐姐的力荐. 看完我觉得,啊不愧是奥斯卡电影啊.推荐. 以下可能会 ...

  2. Java技术专区-虚拟机系列-虚拟机参数(常用)

    基础参数系类(内存分配) -server:一定要作为第一个参数,在多个CPU时性能佳 -Xmn:young generation的heap大小,一般设置为Xmx的3.4分之一-Xms:初始Heap大小 ...

  3. teb教程1

    http://wiki.ros.org/teb_local_planner/Tutorials/Setup%20and%20test%20Optimization 简介:本部分关于teb怎样优化轨迹以 ...

  4. haproxy的代理中继用法

    背景: 现有: 一台baidu/ali/tecent云服务器A(地址为a.a.a.a); 一台VPS B(地址为b.b.b.b), B中搭建有ss,监听端口为8000. 需求: 一:使用A做跳板机访问 ...

  5. 解决虚拟机克隆的linux系统ip无法正常使用问题

    当我们克隆centos虚拟机无法正常获取IP地址,重启网卡也提示Bringing up interface eth0:  Device eth0 does not seem to be present ...

  6. Tomcat免安装版踩坑

    下载解压 从官网下载Tomcat的压缩包解压到硬盘上(这里用的是toncat7),解压之后目录如下(Windows) bin 存放tomcat的一些命令脚本 conf 存放配置文件 lib 存放运行时 ...

  7. phpass类加密算法

    客户说用md5加密容易被破解,要求使用bcrypt加密,经搜索发现password_hash函数可以轻松对密码实现加盐加密,比md5更安全,缺点是运行慢. phpass是一个开源类库,它可以让我们更方 ...

  8. Ubuntu开放对外端口

    1.查看已经开启的端口 sudo ufw status 2.打开80端口 sudo ufw allow 80 3.防火墙开启 sudo ufw enable 4.防火墙重启 sudo ufw relo ...

  9. (微服务架构)Security + Oauth2 + Jwt + Zuul解决微服务系统的安全问题

    前言 之前零零散散的学习过一点鉴权这方面的玩意儿,但自我感觉净他妈整些没用的,看代码还是看不懂,这次我们再统一对其进行学习一下,希望自己掌握这个技能,也希望屏幕面前的你能有点收获 此次的学习周期可能有 ...

  10. 使用SpringBoot AOP 记录操作日志、异常日志

    平时我们在做项目时经常需要对一些重要功能操作记录日志,方便以后跟踪是谁在操作此功能:我们在操作某些功能时也有可能会发生异常,但是每次发生异常要定位原因我们都要到服务器去查询日志才能找到,而且也不能对发 ...