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 }) > ...
随机推荐
- GIS优秀博客以及网址收藏,持续更新
1.gislaozhang arcpy,模型构建器,arcpro 地址:https://blog.csdn.net/gislaozhang?t=1 2.雾语 arcpy,模型构建器,arcg ...
- Django进阶之QuerySet和中介模型
QuerySet QuerySet是查询集,就是传到服务器上的url里面的查询内容.其形态类似于Python的列表,列表中的元素是QuerySet对象.支持大部分列表的内置方法. 可切片 QueryS ...
- 69A
#include <stdio.h> int main() { int n; int sum1=0, sum2=0, sum3=0; int x, y, z; scanf("%d ...
- python 转换容量单位 实现ls -h功能
功能1 把字节转换自适应转为其他单位(ls -h),超过1024投入高一级的区间,不足1024投入本级区间,如1000K是一个合理值,1030K就应该转换为1M,2050K应该转换为2M 功能2 把其 ...
- python进阶(三) 内建函数getattr工厂模式
getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例. 传入不同的字符串,调用的方法不一样. 原型:getattr(对象,方法名) 举个栗子: pyMethod类 ...
- phpstudy----------phpstudy开启apache日志并且按照日期划分创建。
1.CustomLog "|bin/rotatelogs.exe logs/access_%Y_%m_%d.log 86400 480" combined 这里修改成上图所示,然后 ...
- JS基本事件(小记)
一. 事件的概念种类及作用(一) 概念:通常鼠标或热键的动作我们称之为事件(event),热键引发的一连串程序的动作,称之为事件驱动(event Driver).而对事件进行处理的程序或函 ...
- Eclipse 在启动发生错误异常:An internal error occurred during: "Initializing Java Tooling". java.lang.NullPointerException的解决办法
异常现象: 打开Eclipse,出现 An internal error occurred during: "Initializing Java Tooling". java.la ...
- Python之模块导入
import sys #import module (.py)import functools #名词空间 functoolsprint(functools) print("-------- ...
- InternalError (see above for traceback): Blas GEMV launch failed: m=1, n=100
python tensorflow 运行提示错误:InternalError (see above for traceback): Blas GEMV launch failed: m=1, n=1 ...