Java 连接 Mongodb 增删改查操作
来源:互联网 发布:app网络游戏数据修改 编辑:程序博客网 时间:2024/05/23 00:06
对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:
- 不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。
- 无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。
- 弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。
- 分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。
- 异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。
- BASE:相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终一致性和软事务。
Mongodb是Nosql的比较方便成熟的一种数据库
下载安装Mongodb 官网地址 https://www.mongodb.com/download-center#community
下载Java连接Mongodb的驱动Jar包: 地址 http://mongodb.github.io/mongo-java-driver/ 导入到项目中
代码部分
public class DbNopass { private String ip = "localhost"; private Integer port = 27017; private MongoClient mongoClient; private MongoDatabase mongoDatabase; private MongoCollection<Document> collection; /** * 连接DB */ public void connectDb() { mongoClient = new MongoClient(ip, port); mongoDatabase = mongoClient.getDatabase("mycol"); System.out.println("------连接数据库成功------"); collection = mongoDatabase.getCollection("test"); System.out.println("------集合 test 选择成功------\r\n"); } /** * 创建集合 */ public void createCollection() { mongoDatabase.createCollection("test"); System.out.println("------集合test创建成功------\r\n"); } /** * 插入文档 */ public void insertDocument() { /** * 1. 创建文档 org.bson.Document 参数为key-value的格式 2. 创建文档集合List<Document> 3. * 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 * mongoCollection.insertOne(Document) */ Document document = new Document("title", "MongoDB").append("description", "database").append("likes", 100) .append("by", "Fly"); List<Document> documents = new ArrayList<Document>(); documents.add(document); collection.insertMany(documents); System.out.println("------文档插入成功------\r\n"); } /* * 查询 */ public void select(){ //检索所有文档 /** * 1. 获取迭代器FindIterable<Document> * 2. 获取游标MongoCursor<Document> * 3. 通过游标遍历检索出的文档集合 * */ FindIterable<Document> findIterable = collection.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); System.out.println("------查询结果------"); while(mongoCursor.hasNext()){ System.out.println(mongoCursor.next()); } System.out.println("\r\n"); } /* * 更新 */ public void update(){ //更新文档 将文档中likes=100的文档修改为likes=200 collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200))); //检索查看结果 FindIterable<Document> findIterable = collection.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); System.out.println("------查看更新之后的数据------"); while(mongoCursor.hasNext()){ System.out.println(mongoCursor.next()); } System.out.println("\r\n"); } /* * 删除 */ public void delete(){ //删除符合条件的第一个文档 collection.deleteOne(Filters.eq("likes", 200)); //删除所有符合条件的文档 collection.deleteMany (Filters.eq("likes", 200)); //检索查看结果 FindIterable<Document> findIterable = collection.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); System.out.println("------查看删除之后的数据------"); while(mongoCursor.hasNext()){ System.out.println(mongoCursor.next()); } System.out.println("\r\n"); } public static void main(String args[]) { DbNopass db = new DbNopass(); db.connectDb(); db.createCollection(); db.insertDocument(); db.select(); db.update(); db.delete(); }}
打印结果
1 0
- Java 连接 Mongodb 增删改查操作
- java 实现操作mongodb的连接,增删查改
- Java 操作MongoDb 增删改查
- Java操作MongoDB实现增删改查
- Java 操作MongoDb 增删改查
- java连接MongoDB与MongoDB增删改查详解
- MongoDB(六)java操作mongodb增删改查
- Java MongoDB 增删改查
- mongodb--java连接数据库实现增删改查
- Java操作MongoDB之CRUD(增删改查)
- java操作mongodb:基本的增删改查
- MongoDB学习03之JAVA简单操作增删改查
- java 操作mongodb的增删查改 crud
- Java操作MongoDB增删改查工具Demo
- MongoDB 增删查改基本操作
- mongodb php增删改查基本操作
- mongodb增删改查基本操作
- mongodb基础操作--增删改查
- 总结Yii2.0中的Url::to(), Url::toRoute(), Url::current()用法
- index of Practical Software Engineering
- P1028--01背包
- Android 支付宝和微信支付集成
- linux-001之头文件signal.h
- Java 连接 Mongodb 增删改查操作
- RocketMQ updateBrokerConfig 指令
- 2440超详细uboot移植笔记(九)------修改错误
- js中实现button按钮变灰不可用,可用的方法
- spring框架管理线程池
- java实现具有相同属性名称及相似类型的pojo、dto、vo等的互转
- SQL decode函数进行翻译
- STemWin:裸机移植(ILI9325)
- 主题:java并发编程-Executor框架