mongoDB3.6 java API简单使用(十)
来源:互联网 发布:ubuntu ssh 重装 编辑:程序博客网 时间:2024/05/22 16:52
package com.ljl.spring.boot.controller;import com.mongodb.*;import com.mongodb.client.MongoCollection;import com.mongodb.client.MongoCursor;import com.mongodb.client.MongoDatabase;import com.mongodb.client.result.DeleteResult;import com.mongodb.client.result.UpdateResult;import org.bson.Document;import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;import java.util.List;import static com.mongodb.client.model.Filters.*;/** * mongoDB * MongoDB 增删改查 操作,包含批量操作 * * @author * @create 2017-12-21 17:28 **/@RestControllerpublic class TestMongoDB { private static final String HOST = "127.0.0.1"; private static final int PORT = 27017; private static final String DB_NAME = "admin"; private static MongoDatabase db; private static DB db2; static { // 连接到 mongodb 服务 MongoClient mongoClient = new MongoClient(HOST, PORT); // 连接到数据库 db = mongoClient.getDatabase(DB_NAME); } public static void MongoDBJDBC02() { try { // 连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址 // ServerAddress()两个参数分别为 服务器地址 和 端口 ServerAddress serverAddress = new ServerAddress("localhost", 27017); List<ServerAddress> addrs = new ArrayList<ServerAddress>(); addrs.add(serverAddress); //三个参数分别为 用户名 数据库名称 密码 MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray()); List<MongoCredential> credentials = new ArrayList<MongoCredential>(); credentials.add(credential); // 通过连接认证获取MongoDB连接 MongoClient mongoClient = new MongoClient(addrs, credentials); //连接到数据库 MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName"); System.out.println("Connect to database successfully"); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } } //集合创建,插入文档 //我们可以使用 com.mongodb.client.MongoDatabase 类中的createCollection()来创建集合 public static void createCollection() { try { System.out.println("Connect to database successfully"); db.createCollection("user"); System.out.println("集合创建成功"); // 获取集合 // 我们可以使用com.mongodb.client.MongoDatabase类的 getCollection() 方法来获取一个集合 MongoCollection<Document> collection = db.getCollection("user"); System.out.println("集合 test 选择成功"); //插入文档 //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", 300). append("by", "Fly"); List<Document> documents = new ArrayList<Document>(); documents.add(document); collection.insertMany(documents); System.out.println("文档插入成功"); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } }//> show collections// persons// user//> db.user.find()// { "_id" : ObjectId("5a3b858e7be9783afccde496"), "title" : "MongoDB", "description" : "database", "likes" : 100, "by" : "Fly" } //插入文档 //我们可以使用 com.mongodb.client.MongoDatabase 类中的createCollection()来创建集合 public static void insertCollection() { try { // 获取集合 // 我们可以使用com.mongodb.client.MongoDatabase类的 getCollection() 方法来获取一个集合 MongoCollection<Document> collection = db.getCollection("user"); System.out.println("集合 test 选择成功"); //插入文档 //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", 300). append("by", "Fly"); List<Document> documents = new ArrayList<Document>(); documents.add(document); collection.insertMany(documents); System.out.println("文档插入成功"); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } } //更新单个文档,请使用updateOne public static void updateOneDoc() { MongoCollection<Document> collection = db.getCollection("user"); UpdateResult updateResult = collection.updateOne(eq("name", "alen"), new Document("$set", new Document("age", 110))); System.out.println(updateResult.getModifiedCount()); } /*更新全部文档 你可以使用 com.mongodb.client.MongoCollection 类中的 updateMany() 方法来更新集合中的文档。 */ public static void updateDoc() { try { MongoCollection<Document> collection = db.getCollection("user"); System.out.println("集合 test 选择成功"); //更新文档 将文档中likes=100的文档修改为likes=200 UpdateResult updateResult = collection.updateMany(eq("likes", 100), new Document("$set", new Document("likes", 200))); System.out.println(updateResult.getModifiedCount()); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } } //删除第一个文档 // 要删除集合中的第一个文档,首先你需要使用com.mongodb.DBCollection类中的 findOne()方法来获取第一个文档, //然后使用remove 方法删除。 public static void deleteDoc() { try { MongoCollection<Document> collection = db.getCollection("user"); System.out.println("集合 test 选择成功"); // 删除符合条件的第一个文档 DeleteResult deleteResultOne = collection.deleteOne(eq("likes", 200)); System.out.println(deleteResultOne.getDeletedCount()); //删除所有符合条件的文档 DeleteResult deleteResultMany = collection.deleteMany(eq("likes", 200)); // 检索查看结果 System.out.println(deleteResultMany.getDeletedCount()); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } } //查询集合 第一个文档 public static void queryFirstDoc() { MongoCollection<Document> collection = db.getCollection("user"); //first() 返回第一个文档 Document myDoc = collection.find().first(); System.out.println(myDoc.toJson()); } //查询集合 返回全部文档通过iterator() public static void queryAllDoc() { MongoCollection<Document> collection = db.getCollection("user"); //文档的总数 System.out.println(collection.count()); //iterator() 返回第一个文档 MongoCursor<Document> cursor = collection.find().iterator(); try { while (cursor.hasNext()) { System.out.println(cursor.next().toJson()); } } finally { cursor.close(); } } //虽然下面的迭代习惯是允许的, //但是避免使用它,因为如果循环提前终止, //应用程序可能会泄漏一个游标: public static void queryAllDocByFor() { MongoCollection<Document> collection = db.getCollection("user"); //文档的总数 System.out.println(collection.count()); //iterator() 返回第一个文档 for (Document cur : collection.find()) { System.out.println(cur.toJson()); } } //查询指定文档 //要查询符合特定条件的文档,请将过滤器(eq过滤器)对象传递给find()方法。 以 // 获取与过滤器匹配的单个文档 public static void queryEqDoc() { MongoCollection<Document> collection = db.getCollection("user"); //查询 键为name 值为alen,返回第一个 Document myDoc = collection.find(eq("name", "alen")).first(); System.out.println(myDoc.toJson()); } //该示例使用Find Iterable对象上的forEach方法将块应用于每个文档。 //要为范围指定过滤器,例如50 <i <= 100,可以使用和helper: public static void queryConditionalDoc() { MongoCollection<Document> collection = db.getCollection("user"); //该示例使用Find Iterable对象上的forEach方法将块应用于每个文档。 Block<Document> printBlock = new Block<Document>() { @Override public void apply(final Document document) { System.out.println(document.toJson()); } }; //查询 键为name 值为alen,返回第一个 collection.find(and(gt("age", 20), lte("age", 40))).forEach(printBlock); } //创建索引 // 要在一个或多个字段上创建索引,请将索引规范文档传递给createIndex()方法。 // 索引键规范文档包含索引字段和每个字段的索引类型: // new Document(<field1>, <type1>).append(<field2>, <type2>) ... //对于升序索引类型,为<type>指定1。 //对于降序索引类型,为<type>指定-1。 public static void createIndexes() { MongoCollection<Document> collection = db.getCollection("user"); String res = collection.createIndex(new Document("age", 1)); System.out.println("索引名:" + res); } public static void main(String[] args) {// deleteDoc(); //queryCollection(); // queryAllDocByFor(); //queryConditionalDoc(); createIndexes(); }}参考:http://www.mongodb.org.cn/drivers/4.htmlhttp://mongodb.github.io/mongo-java-driver/3.6/driver/getting-started/quick-start/
阅读全文
0 0
- mongoDB3.6 java API简单使用(十)
- dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3(十)之Spring MVC中使用 Swagger2 构建Restful API
- Redis(ZADD)使用Java API实现简单排名
- java并发编程(十)--多线程环境中安全使用集合API
- Java并发编程之十:多线程环境中安全使用集合API(含代码)
- 使用Java 连接MongoDB3.X 3.04 带 auth 认证
- Zookeeper命令行以及java API简单使用
- java xml api 简单使用例子
- Java Json API:Gson使用简单入门
- Java Json API:Gson使用简单入门
- Java连接MongoDB3.0+
- mongodb3.4-java
- Elasticsearch Java API(十)--Multi Get API
- 大数据 (十)Hadoop-第一次使用eclipse&java&hadoop分析简单数据
- 黑马程序员《java基础总结(十)》(泛型、API)
- Elasticsearch简单使用系列--使用Java API进行CRUD操作
- CentOS7 安装 MongoDB3.6
- mongodb3.4-配置以及使用
- 关于最新最热的guns框架的token验证
- SharePoint Patterns and Practices 简介
- Scrapy: 如何设置代理
- bzoj4549 LOJ2305 NOI2017 游戏 2-sat
- openstack组件内部通讯AMQP简单模型
- mongoDB3.6 java API简单使用(十)
- C 语言黑魔法连接
- python 中json的使用方法
- SVG基础二:SVG编写
- react navigation返回到任意页面(不集成redux)
- 微信缓存JS文件问题
- Dubbo admin管理平台搭建
- extjs4.2 from表单创建、窗口设置、显示
- 【Linux】Linux虚拟机安装常用命令