对于mongoDB而言,学习方式和学习关系型数据库差不太多

開始都是学习怎样insert、find、update、remove,然后就是分页、排序、索引,再接着就是主从复制、副本集、分片等等

最后就是通过它提供的各个驱动(比方Java、PHP、node.js等等)来练习所谓的高级使用方法

另外:相对于Oracle有PLSQL Developer,MySQL有HeidiSQL

mongoDB也不例外,它的图形化工具中有一款叫做mongoVUE的,我用的是1.5.3破解版(不是每15天就得改一次注冊表的那种)

以下演示的就是以Java为例,常见的操作mongoDB API使用方法

package com.jadyer.test;import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;import org.bson.types.ObjectId;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.WriteResult;
import com.mongodb.util.JSON;/*** mongoDB的Java驱动測试* @see ----------------------------------------------------------------------------------------* @see 配置* @see 1)下载https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.1.zip* @see 2)解压到本地硬盘D:\Develop\mongoDB\中,并配置环境变量path=D:\Develop\mongoDB\bin* @see   然后在CMD下运行此命令验证成功安装与否>mongod --version* @see 3)建立D:\Develop\mongoDBData\目录,用于存放mongoDB数据文件* @see 4)自己定义bat文件,分别用于启动mongoDB数据库和连接数据库的client* @see   启动client的mongo_client.bat内容为-->mongo 127.0.0.1:27017/admin* @see   启动数据库的mongo_db.bat内容为------>mongod --dbpath D:\Develop\mongoDBData --rest* @see   注:加入[--rest]參数是为了可以訪问mongoDB的Web控制台http://127.0.0.1:28017/* @see ----------------------------------------------------------------------------------------* @see Java驱动* @see 这里要用到mongoDB的Java驱动包,下载地址http://docs.mongodb.org/ecosystem/drivers/java/* @see ----------------------------------------------------------------------------------------* @create May 15, 2014 10:17:30 PM* @author 玄玉<http://blog.csdn.net/jadyer>*/
public class MongoDBTest {private static MongoClient mongoClient;private static DB db;/*** 建立数据库连接*/@BeforeClasspublic static void globalInit(){try {//mongoClient = new MongoClient(Arrays.asList(new ServerAddress("127.0.0.1", 27017), new ServerAddress("127.0.0.1", 27018), new ServerAddress("127.0.0.1", 27019)));mongoClient = new MongoClient("127.0.0.1", 27017);} catch (UnknownHostException e) {System.err.println("mongoDB主机地址有误");}db = mongoClient.getDB("mydemo");}/*** 销毁数据库连接*/@AfterClasspublic static void globalDestroy(){mongoClient.close();}/*** 获取数据库信息*/@Testpublic void getMetaData(){//查询数据库中全部的集合名称for(String collectionName : db.getCollectionNames()){System.out.println("mydemo数据库所拥有的集合为:[" + collectionName + "]");}//查询某一集合中的数据DBCollection collection = db.getCollection("person");DBCursor cursor = collection.find();try{while(cursor.hasNext()){System.out.println("person集合所拥有的name为--[" + cursor.next().get("name") + "]");}}finally{cursor.close();}System.out.println("person集合中的记录数为----------->" + cursor.count());System.out.println("person集合数据格式化后的JSON串为-->" + JSON.serialize(cursor));}/*** 创建一个空的"moive"集合*/@Testpublic void createCollection(){db.createCollection("movie", new BasicDBObject());}/*** 为"moive"集合加入文档*/@Testpublic void insertDocument(){DBObject doc = new BasicDBObject();doc.put("name", "24");doc.put("season", "ninth");doc.put("score", 88);List<String> actorList = new ArrayList<String>();actorList.add("Jack Bauer");actorList.add("Counter Terrorist Unit");doc.put("actor", actorList);db.getCollection("movie").insert(doc);}/*** 批量插入文档*/@Testpublic void insertBatchDocument(){List<DBObject> docList = new ArrayList<DBObject>();DBObject doc11 = new BasicDBObject("name", "Prison Break").append("season", "fourth").append("score", 99);DBObject doc22 = new BasicDBObject("name", "Game of Thrones").append("season", "third").append("score", 92);docList.add(doc11);docList.add(doc22);db.getCollection("movie").insert(docList);}/*** 依据_id删除数据*/@Testpublic void deleteById(){WriteResult result = db.getCollection("movie").remove(new BasicDBObject("_id", new ObjectId("5374c6dc5030e0ea4dac8907")));System.out.println("本次操作影响的记录条数为:" + result.getN());}/*** 依据条件删除数据*/@Testpublic void deleteByData(){DBObject doc = new BasicDBObject();doc.put("name", "Prison Break");WriteResult result = db.getCollection("movie").remove(doc);System.out.println("本次操作影响的记录条数为:" + result.getN());}/*** 更新数据* @see 添加email属性*/@Testpublic void update(){DBObject doc = new BasicDBObject();doc.put("$set", new BasicDBObject("email", "Jadyer@yeah.net"));WriteResult result = db.getCollection("movie").update(new BasicDBObject(), doc, false, true);System.out.println("本次操作影响的记录条数为:" + result.getN());}/*** 查询"moive"集合中的key*/@Testpublic void getKey(){DBObject keys = new BasicDBObject();keys.put("_id", false);keys.put("name", true);//keys.put("score", true);//第一个參数表示查询条件,第二个參数表示返回的详细keyDBCursor cursor = db.getCollection("movie").find(null, keys);try{while(cursor.hasNext()){DBObject object = cursor.next();System.out.println("查询到的name=" + object.get("name") + ", score=" + object.get("score"));}}finally{cursor.close();}}/*** 查询"moive"集合中分数不超过95的key*/@Testpublic void getKeyUseScore(){DBObject ref = new BasicDBObject();ref.put("score", new BasicDBObject("$lte", 95));DBCursor cursor = db.getCollection("movie").find(ref, null);try{while(cursor.hasNext()){DBObject object = cursor.next();System.out.println("查询到的name=" + object.get("name") + ", score=" + object.get("score"));}}finally{cursor.close();}}/*** 分页查询*/@Testpublic void limitSkip(){DBCursor cursor = db.getCollection("movie").find(null, null);cursor.limit(0).skip(1);try{while(cursor.hasNext()){DBObject object = cursor.next();System.out.println("查询到的name=" + object.get("name"));}}finally{cursor.close();}}
}

Java操作mongoDB2.6的常见API使用方法相关推荐

  1. Java基础|1-07-Object类与常见API(二)@API篇

    写在前面: 此系列文是笔者在学习Java系列课程的过程中,参考相关课件.视频讲解.课程代码,并结合一些文档.思维导图及个人理解,对所学内容做的阶段性梳理与总结. 写于:2021年1月28日 内容:Ja ...

  2. 【redis】java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用

    java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用 //重新设置过期时间为30分钟,刷新时间 redisTemplate.expire(MsOp ...

  3. java excel api 下载文件_Java-Excel Java操作Excel POI(Jakarta POI API) - 下载 - 搜珍网

    Java操作Excel/Jakarta POI API/data/Jakarta POI API.doc Java操作Excel/Jakarta POI API/jar/poi-3.0.2-FINAL ...

  4. java util 排序_Java中常见的排序方法

    本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分 ...

  5. 前端学习(1260):promise中的常见api对象方法

  6. JAVA操作Excel时文字自适应单元格的宽度设置方法

    使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...

  7. redis缓存失效时间设为多少_java操作Redis缓存设置过期时间的方法

    关于Redis的概念和应用本文就不再详解了,说一下怎么在java应用中设置过期时间. 在应用中我们会需要使用redis设置过期时间,比如单点登录中我们需要随机生成一个token作为key,将用户的信息 ...

  8. Java 操作excel表格 - JXL(Java excel api)

    Java 操作excel表格 Java 操作 Excel 最常用的就是JXL(Java excel api)和POI,用起来挺简单的,不过相应的其功能也并非很强大,够用就行! 首先,下载jxl.jar ...

  9. java操作Excel有两种方式 方式1:jxl操作Excel jxl的API

    java操作Excel有两种方式 方式1:jxl操作Excel 方式2:poi操作Excel 下面介绍jxl API: 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用 ...

最新文章

  1. 一线互联网常见的14个Java面试题,你颤抖了吗程序员
  2. 图论500题 ---- 并查集+树形dp+枚举 求解动态的最小生成树 HDU 4126
  3. 2021年10大人工智能趋势
  4. Ubuntu 基本概念之美元号的意义
  5. 测试思想-测试设计 测试用例设计之正交法
  6. Swift - final关键字的介绍,以及使用场景
  7. 备份mysql数据库的思路
  8. 为什么重写HashCode()和equal()
  9. hibernate jpa_JPAHibernate替代方案。 如果JPA或Hibernate对于我的项目而言不够好,该怎么办?...
  10. 分数化简_分数应用题七讲 (一) 图示法解分数应用题
  11. Jython 2.2 发布
  12. 苏宁大数据怎么运营_【苏宁大数据部门怎么样?进去能学到技术吗?】-看准网...
  13. GC DevKit 快速入门
  14. mac php gd(mac osx 10.9.4)
  15. ExtAspNet v3.1.9
  16. 函数的对象,函数的嵌套
  17. 新一代Pascal.Net编程语言---PascalABC.Net开发平台
  18. 开源聚力,共创未来 | 麒麟信安祝贺openKylin首个体验版正式发布!
  19. 88家上市公司区块链分布图:七成拓展落地应用 互联网公司善于底层基础
  20. 【云端软件】竞价实例(Spot instance):可节省80%-90%的云计算成本

热门文章

  1. Java语言所有异常类均继承自_要继承自定义异常类的继承方式必须使用 ( ) 关键字_学小易找答案...
  2. 简述直方图和柱形图的区别_如何区分直方图与柱形图
  3. 48个国际音标发音图解暨口形及发音方法
  4. Alibaba Druid 源码阅读(一) 数据库连接池初步
  5. Python在使用pip安装某个库时报错 Could not find a version that satisfies the requirement numpy
  6. 正则提取Swagger在线文档里面的返回实体类字段
  7. 不使用自动注解方式来生成mapper,采用原生方式来生成mapper
  8. 计算机应用基础选择题综合十,计算机应用基础选择题综合复习练习题
  9. java数组r.id_Android HelloViews Spinner教程R.id和R.array无法解析
  10. python搜索关键词自动提交_python+selenium实现自动化百度搜索关键词