MongDB java 操作
来源:互联网 发布:中国历代疆域图软件 编辑:程序博客网 时间:2024/05/06 03:40
主要注意操作mongo-java-driver包的版本,个人以为应该也要注意安装安mongoDB数据的版本,最好能相对应比较好!
用记录ID号更新信息不能是
UpdateResult updateResult = collection.replaceOne(new BasicDBObject("_id", "58438f325967e41d208f5901"), new Document("content","content123456789").append("comment_count", 99).append("title", "source123456789"));
而用是,千万要记住_id是一个ObjectId值而不是一个字符串,根php里操作有很大差别
UpdateResult updateResult = collection.replaceOne(new BasicDBObject("_id", new ObjectId("58438f325967e41d208f5901")), new Document("content","content123456789").append("comment_count", 99).append("title", "source123456789"));
以下为相关操作的记录信息:
插入操作
MongoClient mongoClient = new MongoClient( "localhost" , 27017); MongoDatabase db = mongoClient.getDatabase("shop"); //进入某个文档集 MongoCollection<Document> collection = db.getCollection("animal"); //创建新文档 create cat Document document = new Document("name", "tom").append("type", "cat").append("count", 10).append("info", new Document("high", 50).append("weight", 20)); collection.insertOne(document); //创建一个包含多个文档的列表 List<Document> documents = new ArrayList<Document>(); for(int i=0; i<5; i++){ documents.add(new Document("name", "tom"+i).append("type", "cat").append("count", 10).append("info", new Document("high", 50+i).append("weight", 20+i))); } collection.insertMany(documents);
读取操作
//获取集合中的文档数量 System.out.println("count===="+collection.count()); //查询集合中的第一个文档 Document myDocument = collection.find().first(); System.out.println("find first===="+myDocument); //获取集合中的全部文档 MongoCursor<Document> cursor = collection.find().iterator(); while(cursor.hasNext()){ System.out.println(cursor.next().toJson()); } cursor.close(); //获取全部数据的另一种方法 FindIterable<Document > documents = collection.find(); for(Document document : documents){ System.out.println("document====="+document); } //根据指定条件查询记录 Document myDocument = collection.find(new BasicDBObject("name", "tom")).first(); System.out.println("myDocument==="+myDocument); //根据条件获取某分文档 eq:== Document myDoc = collection.find(new BasicDBObject("name", new BasicDBObject("$eq", "tom")) ).first(); System.out.println("myDoc==="+myDoc); //查询id=5843e04f5f08a52288a06a99 Document myDoc = collection.find(new BasicDBObject("_id", new ObjectId("5843e04f5f08a52288a06a99")) ).first(); System.out.println("myDoc==="+myDoc); //查询name=tom eq等于某个值 Document myDoc2 = collection.find(new BasicDBObject("name", new BasicDBObject("$eq", "tom"))).first(); System.out.println("eq.myDoc2==="+myDoc2); //查询count >=2 gte大于等于 FindIterable<Document> documents = collection.find(new BasicDBObject("count", new BasicDBObject("$gte", 2))); for(Document document:documents){ System.out.println("document======"+document); } //查询info里的某个值测试失败 FindIterable<Document> documents2 = collection.find(new BasicDBObject("info", new BasicDBObject("high", new BasicDBObject("$gte", 10)))); for(Document document:documents2){ System.out.println("document======"+document); } //小于等于50 FindIterable<Document> documents2 = collection.find(new BasicDBObject("count", new BasicDBObject("$lte", 10))); for(Document document:documents2){ System.out.println("document======"+document); } //查询不等于count!=9 FindIterable<Document> documents2 = collection.find(new BasicDBObject("count", new BasicDBObject("$ne", 9))); for(Document document:documents2){ System.out.println("document======"+document); } //查询name in tom/tom1/tom3 FindIterable<Document> documents2 = collection.find(new BasicDBObject("name", new BasicDBObject(QueryOperators.IN, new String[]{"tom", "tom1", "tom3"}))); for(Document document:documents2){ System.out.println("document======"+document); } //查询name not in tom/tom1/tom3 FindIterable<Document> documents2 = collection.find(new BasicDBObject("name", new BasicDBObject(QueryOperators.NIN, new String[]{"tom", "tom1", "tom3"}))); for(Document document:documents2){ System.out.println("document======"+document); } //查询name2 字段不存在的记录 FindIterable<Document> documents2 = collection.find(new BasicDBObject("name2", new BasicDBObject(QueryOperators.EXISTS, true))); for(Document document:documents2){ System.out.println("document======"+document); } // 对输出文档进行排序,-1为递减,1为递增 // 官方文档的例子有误:http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/#sorting-documents // Document myDoc = collection.find(exists("i")).sort(new BasicDBObject("i", -1)).first(); //-1为递减,1为递增 //-1等于倒序 DESC 1=顺序ASC FindIterable<Document> documents2 = collection.find().sort(new BasicDBObject("name", -1)); for(Document document:documents2){ System.out.println("document======"+document); } //类拟分页操作 //获取总数 long count = collection.count(new BasicDBObject("count",10)); FindIterable<Document> documents2 = collection.find(new BasicDBObject("count",10)).skip(1).limit(3).sort(new BasicDBObject("name",-1)); System.out.println("count===="+count); for(Document document:documents2){ System.out.println("document======"+document); } // 选择性输出结果中的元素,0为不显示,1为显示 // 官方文档中的例子又不能用:http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/#projecting-fields BasicDBObject exclude = new BasicDBObject(); exclude.append("_id", 0); // exclude.append("count", 0); exclude.append("name", 1); exclude.append("info", 1); Document myDoc = collection.find().projection(exclude).first(); System.out.println(myDoc.toJson());
修改操作
// 修改时的参数: // $inc 对指定的元素加 // $mul 乘 // $rename 修改元素名称 // $setOnInsert 如果以前没有这个元素则增加这个元素,否则不作任何更改 // $set 修改制定元素的值 // $unset 移除特定的元素 // $min 如果原始数据更大则不修改,否则修改为指定的值 // $max 与$min相反 // $currentDate 修改为目前的时间 //修改第一个符合条件的数据 // $set 为修改 UpdateResult updateResult = collection.updateOne(new BasicDBObject("name", "tom"), new Document("$set", new Document("count", 100))); // 获取全部文档,可以看到以前10的地方变成了110 for (Document cur : collection.find()) { System.out.println(cur.toJson()); } //修改多条记录 //所有count值小于100的记录添加100 UpdateResult updateResult = collection.updateMany(new BasicDBObject("count", new BasicDBObject("$lt",100)), new Document("$inc", new Document("count", 100))); for (Document cur : collection.find()) { System.out.println(cur.toJson()); }
删除操作
//删除第一条符合条件的数据 DeleteResult deleteResult = collection.deleteOne(new BasicDBObject("name", "tom2")); System.out.println("deleteResult"+deleteResult); //删除符合条件的多条记录 DeleteResult deleteResult2 = collection.deleteMany(new BasicDBObject("count", 110)); System.out.println("deleteResult2"+deleteResult2);
0 0
- java操作mongdb
- MongDB java 操作
- 【MongDB for Java】Java操作MongoDB
- java操作mongDB实现多条件查询
- PHP操作mongdb(1)----连接mongdb
- mongdb操作数组字段
- mongdb用户名密码操作
- mongdb操作笔记
- NoSql---MongDB基本操作
- mongdb文档操作
- mongdb聚合操作
- mongdb操作符
- MONGDB查询操作
- Mongdb基本操作符
- Mongdb基本操作
- mongdb删除操作
- mongdb 嵌套操作
- mongdb for java
- 链表
- OkHttp网络请求数据的封装
- C/C++语言编程之斐波拉契数列
- Inteil idea main函数和System.out.println()快捷键
- lua开源测试框架busted源码学习(二)--代码框架分析和用例执行流程
- MongDB java 操作
- ds 12.3 箱子里的木块
- 二、数据库系统结构
- zeromq客户端服务器hello world
- HDU 3549 Flow Problem (最大流)
- 一个简单的rpc框架的实现
- STL空间配置策略之第一级配置器__malloc_alloc_template
- 使用SyncNavigator实现数据库异地同步。
- 奇异值分解及几何意义