一,代码实现

 1 import com.mongodb.DBCollection;
 2 import com.mongodb.MongoClient;
 3 import java.net.UnknownHostException;
 4
 5
 6 public class MongDBUtile {
 7     /**
 8      * MongoClient是线程安全的
 9      * Mongo是非线程安全的
10      * 目前mongodb API中已经建议用MongoClient替代Mongo
11      */
12     private MongoClient mongoClient = null;
13
14
15     /**
16      *   指定数据库的指定集合
17      * @param dbName
18      * @param collectionName
19      * @return
20      */
21     public DBCollection getDBCollection(String dbName, String collectionName) {
22         return mongoClient.getDB(dbName).getCollection(collectionName);
23     }
24
25     /**
26      * 单例模式获取MongoClient
27      */
28     private static MongDBUtile getInstance = null;
29
30     public static MongDBUtile getInstance(String host, int port){
31         getInstance = new MongDBUtile(host,port);
32         return getInstance;
33     }
34
35     private MongDBUtile(String host, int port){
36         if(mongoClient == null){
37             synchronized (MongDBUtile.class) {
38                 if (mongoClient == null) {
39                     initConn(host, port);
40                 }
41             }
42         }
43     }
44
45     /**
46      * 初始化MongoClient
47      * @param host
48      * @param port
49      */
50     private void initConn(String host, int port) {
51         try {
52             mongoClient = new MongoClient(host,port);
53         } catch (UnknownHostException e) {
54             e.printStackTrace();
55         }
56     }
57
58 }

1.1 插入

 1 /**
 2      * 新增 一条记录
 3      * @param dbCollection
 4      */
 5     public static void addOne(DBCollection dbCollection){
 6         DBObject documents = new BasicDBObject("name","张三").append("age", 45).append("sex", "男").append("address",
 7                 new BasicDBObject("postCode", 100000).append("street", "深南大道888号").append("city", "深圳"));
 8         dbCollection.insert(documents);
 9     }
10
11     /**
12      * 批量新增记录:可以使用各种数据类型
13      * @param dbCollection
14      */
15     public static void addList(DBCollection dbCollection){
16         List<DBObject> listdbo= new ArrayList<>();
17         DBObject dbObject = new BasicDBObject();
18         dbObject.put("name", "老王");
19         // 可以直接保存List类型
20         List<String> list = new ArrayList<>();
21         list.add("老王1");
22         list.add("老王2");
23         dbObject.put("remark", list);
24         listdbo.add(dbObject);
25
26         dbObject = new BasicDBObject();
27         // 可以直接保存map
28         Map<String,List<String>> map = new HashMap<>();
29         List<String> hobbys = new ArrayList<>();
30         hobbys.add("吃饭");
31         hobbys.add("睡觉");
32         hobbys.add("吃鸡");
33         map.put("爱好", hobbys);
34         dbObject.put("hobby", map);
35         listdbo.add(dbObject);
36
37         dbObject = new BasicDBObject();
38         dbObject.put("name", "老张");
39         dbObject.put("age", 52);
40         dbObject.put("job", "快递员");
41         dbObject.put("remark", new BasicDBObject("address", "广东省深圳市").append("street", "深南大道888号"));
42         listdbo.add(dbObject);
43
44         dbCollection.insert(listdbo);
45     }
46
47     /**
48      * json转对象后执行新增
49      * @param dbCollection
50      */
51     public static void addByJson(DBCollection dbCollection){
52         String json = "{ \"name\" : \"王五\" , \"age\" : 66 , \"job\" : \"快递员\" , \"remark\" : { \"address\" : \"广东省深圳市\" , \"street\" : \"深南大道888号\"}}";
53         DBObject dbObject = (DBObject)JSON.parse(json);
54         dbCollection.insert(dbObject);
55     }

方法调用以及运行结果

1 //连接mongoDB,并打开数据库
2 DBCollection dbCollection = MongDBUtile.getInstance(HOST,PORT).getDBCollection(DB_NAME, DBCOLLECTION_NAME);
3
4 addOne(dbCollection);
5 addList(dbCollection);
6 addByJson(dbCollection);

1.2 查询

 1 /**
 2      * 条件查询:name 为 张三
 3      * @param dbCollection
 4      */
 5     public static void queryOne(DBCollection dbCollection){
 6         DBObject result = dbCollection.findOne(new BasicDBObject("name","张三"));
 7         System.out.println(result);
 8     }
 9
10     /**
11      * 分页查询:跳过前2条后的3条数据
12      * @param dbCollection
13      */
14     public static void queryPage(DBCollection dbCollection){
15         DBCursor cursor = dbCollection.find().skip(2).limit(3);
16         //遍历输出结果
17         while (cursor.hasNext()) {
18             System.out.println(cursor.next());
19         }
20     }
21     /**
22      * 范围查询:第3条 到 第5条 之间的记录
23      * @param dbCollection
24      * 大于 - $gt
25      * 小于 - $lt
26      * 大于等于 - $gte
27      * 小于等于 - $lte
28      */
29     public static void queryRange(DBCollection dbCollection) {
30         DBObject range = new BasicDBObject();
31         range.put("$gte", 28);
32         range.put("$lte", 32);
33
34         DBObject dbObject = new BasicDBObject();
35         dbObject.put("age", range);
36         DBCursor cursor = dbCollection.find(dbObject);
37         while (cursor.hasNext()) {
38             System.out.println(cursor.next());
39         }
40     }
41
42     /**'
43      *查询出全部的 记录
44      * @param dbCollection
45      */
46     public static void queryList(DBCollection dbCollection) {
47         DBCursor cursor = dbCollection.find();
48         while(cursor.hasNext()){
49             System.out.println(cursor.next());
50         }
51     }

方法调用以及运行结果

 1   //连接mongoDB,并打开数据库
 2         DBCollection dbCollection = MongDBUtile.getInstance(HOST,PORT).getDBCollection(DB_NAME, DBCOLLECTION_NAME);
 3         System.out.println("条件查询:name 为 张三");
 4         queryOne(dbCollection);
 5         System.out.println("跳过前2条后的3条数据");
 6         queryPage(dbCollection);
 7         System.out.println("age在50到52之间的记录");
 8         queryRange(dbCollection);
 9         System.out.println("查询出全部的记录");
10         queryList(dbCollection);
11
12
13 *******************************运行结果*******************************
14
15 条件查询:name 为 张三
16 { "_id" : { "$oid" : "5a50b3d6e6fbe9e658745f04"} , "name" : "张三" , "age" : 45 , "sex" : "男" , "address" : { "postCode" : 100000 , "street" : "深南大道888号" , "city" : "深圳"}}
17 跳过前2条后的3条数据
18 { "_id" : { "$oid" : "5a50b41ae6fb51a28bf2b2d5"} , "hobby" : { "爱好" : [ "吃饭" , "睡觉" , "吃鸡"]}}
19 { "_id" : { "$oid" : "5a50b41ae6fb51a28bf2b2d6"} , "name" : "老张" , "age" : 52 , "job" : "快递员" , "remark" : { "address" : "广东省深圳市" , "street" : "深南大道888号"}}
20 age在50到52之间的记录
21 { "_id" : { "$oid" : "5a50b41ae6fb51a28bf2b2d6"} , "name" : "老张" , "age" : 52 , "job" : "快递员" , "remark" : { "address" : "广东省深圳市" , "street" : "深南大道888号"}}
22 查询出全部的记录
23 { "_id" : { "$oid" : "5a50b3d6e6fbe9e658745f04"} , "name" : "张三" , "age" : 45 , "sex" : "男" , "address" : { "postCode" : 100000 , "street" : "深南大道888号" , "city" : "深圳"}}
24 { "_id" : { "$oid" : "5a50b41ae6fb51a28bf2b2d4"} , "name" : "老王" , "remark" : [ "老王1" , "老王2"]}
25 { "_id" : { "$oid" : "5a50b41ae6fb51a28bf2b2d5"} , "hobby" : { "爱好" : [ "吃饭" , "睡觉" , "吃鸡"]}}
26 { "_id" : { "$oid" : "5a50b41ae6fb51a28bf2b2d6"} , "name" : "老张" , "age" : 52 , "job" : "快递员" , "remark" : { "address" : "广东省深圳市" , "street" : "深南大道888号"}}

 1.3 更新

 /*** 修改指定记录* @param dbCollection*/public static void updateOne(DBCollection dbCollection) {// 先根据id查询将这条记录查询出来DBObject qryResult = dbCollection.findOne(new ObjectId("5a50b768e6fbda046406b255"));// 修改指定的值qryResult.put("age", 55);DBObject oldDBObject = new BasicDBObject();oldDBObject.put("_id", new ObjectId("5a50b768e6fbda046406b255"));dbCollection.update(oldDBObject, qryResult);}/*** 修改多条记录* @param dbCollection*/public static void updateMulti(DBCollection dbCollection) {DBObject newDBObject = new BasicDBObject();newDBObject.put("name", "张三");newDBObject.put("address", "广东深圳");newDBObject.put("remark", "张三是一个man");DBObject oldDBObject = new BasicDBObject();oldDBObject.put("name", "张三");// 需要加上这个DBObject upsertValue = new BasicDBObject("$set", newDBObject);// 后面的两个参数:1.若所更新的数据没有,则插入 ; 2、同时更新多个符合条件的文档(collection)dbCollection.update(oldDBObject, upsertValue, true, true);}

方法调用以及运行结果

1.4 删除

 1     /**
 2      *删除第一个
 3      * @param dbCollection
 4      */
 5     public static void deleteFirst(DBCollection dbCollection){
 6         DBObject dbObject = dbCollection.findOne();
 7         dbCollection.remove(dbObject);
 8     }
 9
10     /**
11      * 删除指定的一条记录
12      * @param dbCollection
13      */
14     public static void deleteOne(DBCollection dbCollection){
15         DBObject dbObject = new BasicDBObject();
16         dbObject.put("_id", new ObjectId("5a50b41ae6fb51a28bf2b2d4"));
17         dbCollection.remove(dbObject);
18     }
19
20     /**
21      * 删除多条记录
22      * 例如:select * from tb where name in('12','34')
23      * @param dbCollection25      */
26     public static void deleteByIn(DBCollection dbCollection) {
27         List<String> list = new ArrayList<String>();
28         list.add("老张");
29         list.add("老王");
30         list.add("张三");
31         DBObject dbObject = new BasicDBObject("$in", list);
32
33         DBObject delObject = new BasicDBObject();
34         delObject.put("name", dbObject);
35         dbCollection.remove(delObject);
36     }
37
38     /**
39      * 删除全部的记录
40      * @param dbCollection
41      */
42     public static void deleteAll(DBCollection dbCollection){
43         DBCursor cursor = dbCollection.find();
44         while(cursor.hasNext()){
45             dbCollection.remove(cursor.next());
46         }
47     }

转载于:https://www.cnblogs.com/yy136/p/8215167.html

MongoDB API实现增删改查相关推荐

  1. Mongodb的的增删改查

    Mongodb的的增删改查 1. mongodb插入数据 命令:db.集合名称.insert(document)   [document要用大括号包起来] db.stu.insert({name:'g ...

  2. 利用koa实现mongodb数据库的增删改查

    概述 使用koa免不了要操纵数据库,现阶段流行的数据库是mongoDB,所以我研究了一下koa里面mongoDB数据库的增删改查,记录下来,供以后开发时参考,相信对其他人也有用. 源代码请看:我的gi ...

  3. Mongodb命令操作增删改查

    Mongodb命令操作增删改查 需求描述 新增5 人 查询 修改 删除 数据结构 {"_id" : ObjectId("59f938235d93fc4af8a37114& ...

  4. express+mongodb+vue实现增删改查-全栈之路

    vue element mongodb express 效果图 前言 最近一直想学下node,毕竟会node的前端更有市场.但是光看不练,感觉还是少了点什么,就去github上看别人写的项目,收获颇丰 ...

  5. Java操作Mongodb数据(增删改查聚合查询)

    文章目录 一.Java操作MongoDB 二.使用步骤 1.基础配置 2.实体类 3.MongoDB表数据 3.增删改查聚合查询 总结 一.Java操作MongoDB 上一篇文章介绍了,如何在本地使用 ...

  6. Node.js+Express+MongoDB 实现学生增删改查

    前言 选用Node.js,Express,MongoDB来实现一个学生信息的增删改查. Express框架搭建服务器 art-template模板实现页面 MongoDB数据库 Mongoose操作数 ...

  7. nodejs对mongodb数据库的增删改查操作(转载)

    首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-l ...

  8. mongodb数据库的增删改查(有图有demo)

    名词注释 下面的截图中,有一些名词需要解释一下,方便理解和应用: cuckoo叫库名,也就是数据库的名字 users叫集合名,也就是colloction的名字 右侧带_id的一排排的, 那叫文档 而_ ...

  9. java创建mongdb数据库_【转发】Java使用MongoDB数据库进行增删改查

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_26584263/article/ ...

最新文章

  1. python窗口动态实时显示时间_苏州2.8寸串口屏厂家:切管机触摸屏实时动态显示切割过程...
  2. WinCE/Mobile上下滑动浏览DataGrid数据 【转】
  3. 马斯克再发声,称人工智能是人类文明面临的最大风险
  4. Linux网络模式及远程连接出错排障
  5. udp socket 接收数据
  6. 从googleDriver下载大数据集
  7. websoc是什么可以卸载吗_Win7系统中unity web player是什么程序?能否卸载
  8. Ubuntu虚拟机下载app网速太慢
  9. 交换element-ui的MessageBox弹框的确定和取消位置
  10. B2C商城项目源码,基于Java开发的高可用分布式B2C商城系统,Java+Spring MVC+Dubbo+Zookeeper+MySQL+Redis+FastDFS+Nginx+Solr
  11. C# 群发邮件 (密送、抄送)
  12. 《Real time Detection of Lane Markers in Urban Streets》阅读笔记
  13. 港科百创|首创元宇宙会场-香港科大-杰瑞集团2022【人工智能】百万奖金国际创业大赛决赛...
  14. 从头开始写STM32F103C8T6驱动库(二)——编写系统初始化程序,配置时钟树
  15. CEO采访:从战略层面建立数据驱动型的客户体验策略
  16. 众链网络-慧景区项目建设方案1(票务系统)
  17. JavaScript基础——自定义对象
  18. 缓冲区溢出攻击(Buffer Overflows实验笔记)
  19. oracle 配置ip地址监听,Windows环境下修改Oracle实例监听IP地址
  20. IM系统四大基本特性

热门文章

  1. [原创]基于frida的脱壳工具
  2. Android源码分析--MediaServer源码分析(一)
  3. 深入理解Android的startservice和bindservice
  4. Android中取消系统标题栏的几种方式
  5. TextSwitcher实现文本自动垂直滚动
  6. sql安装目录下log文件夹_Linux安装Hive数据仓库工具
  7. 试用去水印_教你一键视频去水印,支持抖音、快手、小红书、哔哩哔哩等几十个平台...
  8. python3多线程异步爬虫_python3爬虫中多线程进行解锁操作实例
  9. c语言程序设计精髓第二周,2实型数据C语言程序设计精髓.pdf
  10. 求细胞数量pascal题解