Java - MongoDB常用操作
发布日期:2021-06-30 19:50:36
浏览次数:2
分类:技术文章
本文共 7234 字,大约阅读时间需要 24 分钟。
Util
import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import org.bson.Document; import org.bson.conversions.Bson; import org.bson.types.BasicBSONList; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Created by PeersLee on 2017/1/30. */ public class MongoUtil { public static MongoClient client; public static MongoDatabase db; public MongoUtil(String dbName) { client = new MongoClient("127.0.0.1", 27017); db = client.getDatabase(dbName); System.out.println(dbName + "连接成功..."); } //查找(是否存在) public boolean isDuplicate(String colName, Mapmap) { // 默认不重复 boolean res = false; try { MongoCollection col = db.getCollection(colName); Document doc = new Document(); for (Map.Entry entry : map.entrySet()) { doc.append(entry.getKey(), entry.getValue()); } FindIterable findIte = col.find(doc); MongoCursor mongoCur = findIte.iterator(); if (mongoCur.hasNext()) { // 如果有元素,则重复 System.out.println("重复..."); res = true; } } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } return res; } //插入(去重复) public void insertCol(String colName, Map msg) { try { MongoCollection col = db.getCollection(colName); // 将msg 中的信息写入 Document doc = new Document(); for(Map.Entry entry : msg.entrySet()) { doc.append(entry.getKey(), entry.getValue()); } // 创建List List docs = new ArrayList (); docs.add(doc); col.insertMany(docs); System.out.println("文档已经插入到" + colName + "..."); } catch (Exception e) { System.out.println(e.getClass().getName() + ":" + e.getMessage()); } } //获取一条数据,并标记处理 public String findOne(String colName, Map map, String resKey) { String res = null; try { MongoCollection col = db.getCollection(colName); // 构造查询条件 doc Document doc = new Document(); for (Map.Entry entry : map.entrySet()) { doc.append(entry.getKey(), entry.getValue()); } // 根据 doc(key、value)查询 FindIterable findIte = col.find(doc); MongoCursor mongoCur = findIte.iterator(); if (mongoCur.hasNext()) { // 根据 resKey 返回字段 res = mongoCur.next().get(resKey).toString(); System.out.println("MongoDB Return:" + res); } else { res = null; System.out.println("MongoDB Return NULL"); } } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } return res; } // 更新文档 public void updateOne(String colName, Map getMap, Map setMap) { try { MongoCollection col = db.getCollection(colName); // 创建一个List,每个元素是一个比较结果 //extends ArrayList
maven
org.mongodb mongo-java-driver 3.4.2
其他
package com.mkyong.core;import java.net.UnknownHostException;import java.util.HashMap;import java.util.Map;import com.mongodb.BasicDBObject;import com.mongodb.BasicDBObjectBuilder;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;import com.mongodb.Mongo;import com.mongodb.MongoException;import com.mongodb.util.JSON;/** * Java MongoDB : Insert a Document * */public class InsertDocumentApp { public static void main(String[] args) { try { Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("yourdb"); DBCollection collection = db.getCollection("dummyColl"); // 1. BasicDBObject example System.out.println("BasicDBObject example..."); BasicDBObject document = new BasicDBObject(); document.put("database", "mkyongDB"); document.put("table", "hosting"); BasicDBObject documentDetail = new BasicDBObject(); documentDetail.put("records", 99); documentDetail.put("index", "vps_index1"); documentDetail.put("active", "true"); document.put("detail", documentDetail); collection.insert(document); DBCursor cursorDoc = collection.find(); while (cursorDoc.hasNext()) { System.out.println(cursorDoc.next()); } collection.remove(new BasicDBObject()); // 2. BasicDBObjectBuilder example System.out.println("BasicDBObjectBuilder example..."); BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start() .add("database", "mkyongDB") .add("table", "hosting"); BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start() .add("records", "99") .add("index", "vps_index1") .add("active", "true"); documentBuilder.add("detail", documentBuilderDetail.get()); collection.insert(documentBuilder.get()); DBCursor cursorDocBuilder = collection.find(); while (cursorDocBuilder.hasNext()) { System.out.println(cursorDocBuilder.next()); } collection.remove(new BasicDBObject()); // 3. Map example System.out.println("Map example..."); MapdocumentMap = new HashMap (); documentMap.put("database", "mkyongDB"); documentMap.put("table", "hosting"); Map documentMapDetail = new HashMap (); documentMapDetail.put("records", "99"); documentMapDetail.put("index", "vps_index1"); documentMapDetail.put("active", "true"); documentMap.put("detail", documentMapDetail); collection.insert(new BasicDBObject(documentMap)); DBCursor cursorDocMap = collection.find(); while (cursorDocMap.hasNext()) { System.out.println(cursorDocMap.next()); } collection.remove(new BasicDBObject()); // 4. JSON parse example System.out.println("JSON parse example..."); String json = "{'database' : 'mkyongDB','table' : 'hosting'," + "'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}"; DBObject dbObject = (DBObject)JSON.parse(json); collection.insert(dbObject); DBCursor cursorDocJSON = collection.find(); while (cursorDocJSON.hasNext()) { System.out.println(cursorDocJSON.next()); } collection.remove(new BasicDBObject()); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } }}
转载地址:https://lipenglin.blog.csdn.net/article/details/63262830 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月24日 03时39分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于MATLAB的模拟调制信号与解调的仿真——AM
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——DSB
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——SSB
2019-04-30
操作系统实验之生产者和消费者程序
2019-04-30
操作系统实验之猴子过桥问题的模拟程序
2019-04-30
POJ - 3067 Japan (树状数组 思维)
2019-04-30
POJ - 2352 Stars (树状数组 入门题)
2019-04-30
HDU - 1166 敌兵布阵 (树状数组模板题/线段树模板题)
2019-04-30
CodeForces - 761C Dasha and Password (思维 暴力)
2019-04-30
POJ - 2481 Cows (树状数组 入门题)
2019-04-30
ACM-ICPC 2018 焦作赛区网络预赛 I. Save the Room
2019-04-30
CodeForces - 987C Three displays (暴力/dp)
2019-04-30
计蒜客 NAIPC 2016 F. Mountain Scenes(dp)
2019-04-30
牛客国庆集训派对Day4——I 连通块计数(思维)
2019-04-30
牛客国庆集训派对Day4——G 区间权值(找规律,双重前缀和)
2019-04-30
牛客国庆集训派对Day5——L 数论之神(找规律/数论)
2019-04-30
CodeForces - 629B Far Relative’s Problem(模拟)
2019-04-30