Java操作MongoDB:连接&增&删&改&查
1.连接
①方式一
MongoClientOptions.Builder builder = MongoClientOptions.builder(); //可以通过builder做各种详细配置
MongoClientOptions myOptions = builder.build();
ArrayList<ServerAddress> serverAddressList = new ArrayList();
ServerAddress record = new ServerAddress("localhost", 27017); //IP、端口
serverAddressList.add(record); //用户名、默认库名、密码
MongoCredential credential = MongoCredential.createCredential("testUser", "test", "testPwd".toCharArray());
MongoClient mongoClient = new MongoClient(serverAddressList, credential, myOptions);
②方式二
//用户名、密码、IP、端口、默认库名
String sURI = String.format("mongodb://%s:%s@%s:%d/%s", "testUser", "testPwd", "localhost", 27017, "test");
MongoClient mongoClient = new MongoClient(new MongoClientURI(sURI));
③方式三(没开启权限验证模式时可使用)
//不使用用户名和密码直接进行登陆(方便初学者,避免过于复杂的设置)
MongoClient mongoClient = new MongoClient("localhost", 27017);
2.中间步骤(创建一个collection存放数据,相当于表table)
MongoDatabase dbTest = mongoClient.getDatabase("test");
//如果不存在,则增加collection
MongoCollection<Document> collection = dbTest.getCollection("test_collection");
if (collection == null) {
dbTest.createCollection("test_collection");
}
3.insert
//insert 增加数据
Document doc = new Document();
doc.append("Name", "name1");
doc.append("Age", 20);
//collection.insertOne(doc); //增加一条数据 //增加多条数据
Document doc2 = new Document();
doc2.append("Name", "name2");
doc2.append("Age", 30); ArrayList dataList = new ArrayList();
dataList.add(doc);
dataList.add(doc2);
collection.insertMany(dataList);
4.delete
//delete 删除数据
BasicDBObject delSql = new BasicDBObject("Name", "name1");
collection.findOneAndDelete(delSql); //删除一条
//collection.deleteMany(delSql); //删除多条
5.update
//update 修改数据
BasicDBObject updateOldSql = new BasicDBObject("Name", "name2");
//更新一条数据
BasicDBObject updateNewOneSql = new BasicDBObject("$set", new BasicDBObject("Name", "name1"));
//collection.updateOne(updateOldSql,updateNewOneSql); //更新多条数据
BasicDBObject updateNewManySql = new BasicDBObject("$set", new BasicDBObject("Name", "name1").append("Age",66)); //修改多个字段
collection.updateMany(updateOldSql, updateNewManySql);
6.query
//查询数据
BasicDBObject querySql = new BasicDBObject("Name", "name1");
FindIterable<Document> queryRst = collection.find(querySql); //这里可以做sort和filter等操作
MongoCursor<Document> cursor = queryRst.iterator();
while (cursor.hasNext()){
System.out.println(cursor.next());//输出每一行数据
}
以上。
Java操作MongoDB:连接&增&删&改&查的更多相关文章
- 简单的php数据库操作类代码(增,删,改,查)
这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
- MongoDB增 删 改 查
增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...
随机推荐
- [ERROR] - Error reading string. Unexpected token: StartObject. Path 'formData', line 1, position 13.
公司流程框架: businessData 为 string 所有要使用JSON.stringify();
- vivado/FPGA 使用小纪
1.使用FPGA做为外部控制器的总线译码时,将总线时钟接在全局时钟脚上(MRCC),就算接在了局部时钟(SRCC)上,也要通过BUFG转为全局时钟走线,否则会因为local clk到各部分的时延较大引 ...
- Java开发想尝试大数据和数据挖掘,如何规划学习?
大数据火了几年了,但是今年好像进入了全民大数据时代,本着对科学的钻(zhun)研(bei)精(tiao)神(cao),我在17年年初开始自学大数据,后经过系统全面学习,于这个月跳槽到现任公司. 现在已 ...
- 1、js比较日期的大小
① html <div class="ptb10"><span>共享开始时间:</span><input type="text& ...
- Spring Boot 自动配置原理(精髓)
一.自动配置原理(掌握) SpringBoot启动项目会加载主配置类@SpringBootApplication,开启@EnableAutoConfiguration自动配置功能 @EnableAut ...
- layer知识点总结
1,本弹窗直接跳转父页面: <script> window.parent.location.reload(); //刷新父页面 var index = pare ...
- linux 进程间通信——内存共享映射mmap和munmap
IPC三种通信机制是指:信号量.共享内存.消息队列, 信号量:通过操作系统中的PV操作来实现: 共享内存:申请一块内存,进程A往共享内存中写,其他的进程就可以通过读出共享内存中的内容来获取进程A所 ...
- 2018-2019-1 20189221 《Linux内核原理与分析》第九周作业
2018-2019-1 20189221 <Linux内核原理与分析>第九周作业 实验八 理理解进程调度时机跟踪分析进程调度与进程切换的过程 进程调度 进度调度时机: 1.中断处理过程(包 ...
- awk 同时指定多个分隔符
$ echo "id: xxx(6667)xxx"|awk -F "[()]" '{print $2}' $ 6667 $ echo "abc[def ...
- linux delete file
今天不小心生成了这么个文件名的文件-ep-ser 然后 rm -ep-ser就删除不了,它认为-e是option 后来,用rm ./-ep-ser就顺利删除了,哈哈,教训啊