MongoDB操作(1)—MongoDB java驱动核心层次结构及操作流程
- MongoDB之java驱动学习
- 预备:
- 本地运行MongoDB采用默认端口20717;
- 安装MongoDB驱动;
- 以下关键步骤。
- 核心层次结构或步骤:
- 创建连接池:MongoClient实例。
- 对于一个给定的MongoDB部署{独立的MongoDB,副本,分片集群},连接池实例只需要一个。
- 如果创建了多实例连接池:
- 资源限制:每个连接池实例对资源的使用都将受到限制(如最大连接数)。
- 关闭连接池:要放弃一个连接池实例,就应该调用MongoClient.close()方法来清除资源。
- 访问数据库:MongoClient.getDatabase()方法的调用
- 在方法中指定数据库名字。如果该数据库不存在,MongoDB会在你第一次存储数据到该数据库时创建该数据库。
- getDatabase()方法返回的MongoDatabase对象是不可变的。
- 访问集合(~表):使用MonoDatabase的getCollection()方法访问一个集合Collection。
- 在getCollection()方法中声明集合的名字。如果一个集合不存在,MongoDB会在你第一次存储数据到该集合的时候创建该集合。
- MongoCollection对象是不可变的。
- 创建一个文档Document(~记录)
- Document对象包含许多字符串类型参数,字符串池的管理是否会存在压力?
- 插入一个文档(记录)到集合(表)当中 :collection.insertOne(doc)
- 创建连接池:MongoClient实例。
- 预备:
- 增删改查详解:
- 增:
- 单个文档插入collection.insertOne(doc),略;
- 多个文档插入:
- collection.insertMany(list);
- for循环、foreach;
- 查询:
- 集合中的文档数量:collection.countDocuments();
- 查找单个文档:collection.find()
- 配合first()方法:collection.find().first();
- 如果没记录,返回null:
- 查找所有的文档:collection.find.iterator()
- 返回类型为MongoCursor;
- 迭代方式:
- while(cursor.hasNext()){cursor.next().toJson()},finally中关闭游标;
- foreach循环:应当避免使用,因为如果循环提前结束,会导致游标泄漏。
- 查找满足特定条件的文档:find()方法中传入过滤器
- eq(fieldName,valueConditioin);
- 范围过滤器:and(gt(field1Name,value1),lte(filed2Name,value2)).foreach();
- 更新文档
- updateOne:
- updateMany:
- 返回UpdateResult对象;
- 更新必传参数:
- 过滤器对象;
- 要更新的文档对象。
- 删除文档
- deleteOne;
- deleteMany;
- 必传参数:过滤器对象
- 增:
- 创建索引
- 为了在一个字段或多个字段上创建索引,传一个索引声明文档到createInde()方法中。
- 一个索引文档包含要索引的字段名,以及每个字段的索引类型:
- 1,升序的索引类型;
- -1,降序的索引类型。
MongoDB操作(1)—MongoDB java驱动核心层次结构及操作流程的更多相关文章
- Mongodb入门并使用java操作Mongodb
转载请注意出处:http://blog.csdn.net/zcm101 最近在学习NoSql,先从Mongodb入手,把最近学习的总结下. Mongodb下载安装 Mongodb的下载安装就不详细说了 ...
- MongoDB的Java驱动使用整理 (转)
MongoDB Java Driver 简单操作 一.Java驱动一致性 MongoDB的Java驱动是线程安全的,对于一般的应用,只要一个Mongo实例即可,Mongo有个内置的连接池(池大小默认为 ...
- mongodb在java驱动包下的操作(转)
推荐几章很有用的文章 java操作参考文档 http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html http://blog.csdn. ...
- MongoDB学习-->命令行增删改查&JAVA驱动操作Mongodb
MongoDB 是一个基于分布式文件存储的数据库. 由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关 ...
- mongodb高级操作及在Java企业级开发中的应用
Java连接mongoDB Java连接MongoDB需要驱动包,个人所用包为mongo-2.10.0.jar.可以在网上下载最新版本. package org.dennisit.mongodb.st ...
- MongoDB资料--Java驱动, Hadoop驱动, Spark使用
MongoDB数据库备份: mongodump -h 192.168.1.160 -d MapLoc -o /usr/local/myjar/mongo/MapLoc/数据库还原:mongoresto ...
- MongoDB学习比较-07 C#驱动操作MongoDB
下载驱动 驱动的下载有两种方式:一种是在C#项目中通过NuGet进行安装,另一种是通过下面的链接:https://github.com/mongodb/mongo-csharp-driver/rele ...
- java操作mongodb & springboot整合mongodb
简单的研究原生API操作MongoDB以及封装的工具类操作,最后也会研究整合spring之后作为dao层的完整的操作. 1.原生的API操作 pom.xml <!-- https://mvnre ...
- MongoDB(3)--Java 操作 MongoDB 的 API
引入mongoDb 依赖 <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-j ...
随机推荐
- linux学习笔记整理(八)
第九章 文件的归档和压缩本节所讲内容:9.1 tar命令进行文件的归档和压缩9.2 zip管理压缩文件9.3 了解gzip-bzip2- xz管理压缩文件-file-sort查看文件 9.1 tar命 ...
- [ZJOI2011]礼物
嘟嘟嘟 正是因为有这样的数据范围,解法才比较暴力. 我们假设取出的长方体常和宽相等,即\(a * a * b\).这样我们每次换两条边相等,搞三次就行. 那么对于第\(k\)层中的第\((i, j)\ ...
- mysql 使用正则表达式查询
SELECT * FROM `qq` where qq_name!='no' and qq_gender='女' and qq_location!='no' and qq_location!='' a ...
- 【转】ffmpeg 常用命令
1. 视频转换 比如一个avi文件,想转为mp4,或者一个mp4想转为ts. ffmpeg -i input.avi output.mp4 ffmpeg -i input.mp4 output.ts ...
- 2018年尚硅谷《全套Java、Android、HTML5前端视频》
全套整合一个盘里:链接:https://pan.baidu.com/s/1nwnrWOp 密码:h4bw 如果分类里没有请下载下边那些小项教程链接 感谢尚硅谷提供的视频教程:http://www.at ...
- truffle框架的简单使用
truffle 给大家介绍一下这个框架怎么使用,其实把这个框架就是你们看我之前有一个教程是教你们怎么用remix-ide来连接私有链,编译,配置合约,然后进行调用的,truffle其实就是把这个步骤放 ...
- GoldenGate OGG-01032 There Is a Problem in Network Communication Error in Writing to Rmt Remote Trail Rmttrail (Doc ID 1446621.1)
GoldenGate OGG-01032 There Is a Problem in Network Communication Error in Writing to Rmt Remote Trai ...
- Python 中的浅拷贝和深拷贝
1. 列表和字典,直接赋值,都是浅拷贝,即赋值双方指向同一地址,因为 Python 对可变对象按引用传递. >>> a = [1, 2, 3] >>> b = a ...
- 自动化测试中依据元素实时截图,比较元素图片是否一致(selenium和appium通用)
1.根据元素的上下左右的坐标进行截图 2.先安装pillow 3.下面是截图 4.下面是比较两张图片的值 5.截取两张图片,然后对两张图片比对,这种场景,可以在测试视频播放.图片显示页面做验证.
- Luogu P4169 [Violet]天使玩偶/SJY摆棋子
传送门 二维平面修改+查询,cdq分治可以解决. 求关于某个点曼哈顿距离(x,y坐标)最近的点——dis(A,B) = |Ax-Bx|+|Ay-By| 但是如何去掉绝对值呢? 查看题解发现假设所有的点 ...