mongodb driver使用代码详解

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

0 前言

全是干货的技术殿堂

文章收录在我的 GitHub 仓库,欢迎Star/fork:

Java-Interview-Tutorial

https://github.com/Wasabi1234/Java-Interview-Tutorial

mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动。我们现在来使用mongodb-driver完成对Mongodb的操作。

1 环境准备

创建工程,并添加以下依赖:

<dependency>
 <groupId>org.mongodb</groupId>
 <artifactId>mongodb-driver</artifactId>
 <version>3.10.1</version>
</dependency>

2 使用mongodb-driver

2.1 查询所有

@Test
public void test1() {
 //创建连接
 MongoClient client = new MongoClient("192.168.200.128");
 //打开数据库
 MongoDatabase commentdb = client.getDatabase("commentdb");
 //获取集合
 MongoCollection<Document> comment = commentdb.getCollection("comment");
 //查询
 FindIterable<Document> documents = comment.find();
 //查询记录获取文档集合
 for (Document document : documents) {
 System.out.println("_id:" + document.get("_id"));
 System.out.println("内容:" + document.get("content"));
 System.out.println("用户ID:" + document.get("userid"));
 System.out.println("点赞数:" + document.get("thumbup")); }
 //关闭连接
 client.close();
 }
 } 

2.2 根据_id查询

每次使用都要用到MongoCollection,进行抽取:

private MongoClient client;
private MongoCollection<Document> comment;
@Before
public void init() {
 //创建连接
 client = new MongoClient("192.168.200.128");
 //打开数据库
 MongoDatabase commentdb = client.getDatabase("commentdb");
 //获取集合
 comment = commentdb.getCollection("comment");
}
@After
public void after() {
 client.close();
}
@Test public void test2() {
 //查询
 FindIterable<Document> documents = comment.find(new BasicDBObject("_id", "1"));
 //查询记录获取文档集合
 for (Document document : documents) {
 System.out.println("_id:" + document.get("_id"));
 System.out.println("内容:" + document.get("content"));
 System.out.println("用户ID:" + document.get("userid"));
 System.out.println("点赞数:" + document.get("thumbup"));
 }
}

2.3 新增

@Test public void test3() {
 Map<String, Object> map = new HashMap();
 map.put("_id", "6");
 map.put("content", "很棒!");
 map.put("userid", "9999");
 map.put("thumbup", 123);
 Document document = new Document(map);
 comment.insertOne(document);
}

2.4 修改

@Test public void test4() {
 //修改的条件
 Bson filter = new BasicDBObject("_id", "6");
 //修改的数据
 Bson update = new BasicDBObject("$set", new Document("userid", "8888"));
 comment.updateOne(filter, update);
}

2.5 删除

@Test public void test5() {
 //删除的条件
 Bson filter = new BasicDBObject("_id", "6");
 comment.deleteOne(filter);
}

MongoDB优势与劣势

优势:

1、在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。
2、MongoDB的高可用和集群架构拥有十分高的扩展性。
3、在副本集中,当主库遇到问题,无法继续提供服务的时候,副本集将选举一个新的主库继续提供服务。
4、MongoDB的Bson和JSon格式的数据十分适合文档格式的存储与查询。

劣势:

1、 不支持事务操作。MongoDB本身没有自带事务机制,若需要在MongoDB中实现事务机制,需通过一个额外的表,从逻辑上自行实现事务。
2、 应用经验少,由于NoSQL兴起时间短,应用经验相比关系型数据库较少。
3、MongoDB占用空间过大。

总结

到此这篇关于mongodb driver使用代码详解的文章就介绍到这了,更多相关mongodb driver使用 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Ubuntu 14.04 安装 MongoDB 及 PHP MongoDB Driver详细介绍

    说明 MongoDB 是非常有名的 NOSQL 数据库,下面是 Ubuntu 14.04 下 MongoDB 的安装, 同时还有针对 PHP 的配置 (driver 安装等), 此方法适用于 Homestead. 安装 MongoDB 1. 添加源 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 echo 'deb http://downloads-distro.mongodb.org/repo

  • mongodb driver使用代码详解

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial mongo

  • spring boot application properties配置实例代码详解

    废话不多说了,直接给大家贴代码了,具体代码如下所示: # =================================================================== # COMMON SPRING BOOT PROPERTIES # # This sample file is provided as a guideline. Do NOT copy it in its # entirety to your own application. ^^^ # ========

  • Java连接操作Oracle数据库代码详解

    废话不多说了,直接给大家贴关键代码了,具体代码如下所示: package com.sp.test; import java.sql.*; import java.util.*; public class Text_lianxi extends Thread { public void run() { try { yunxing(); Thread.sleep(10000); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.pr

  • SpringBoot整合Shiro的代码详解

    shiro是一个权限框架,具体的使用可以查看其官网 http://shiro.apache.org/  它提供了很方便的权限认证和登录的功能. 而springboot作为一个开源框架,必然提供了和shiro整合的功能!接下来就用springboot结合springmvc,mybatis,整合shiro完成对于用户登录的判定和权限的验证. 1.准备数据库表结构 这里主要涉及到五张表:用户表,角色表(用户所拥有的角色),权限表(角色所涉及到的权限),用户-角色表(用户和角色是多对多的),角色-权限表

  • apache commons工具集代码详解

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍. 组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包 例如DES.SHA1.MD5.Base64等. Collections java集合框架操作. Compress java提供文件打包 压缩类库. Con

  • Java中EnumMap代替序数索引代码详解

    本文研究的主要是Java中EnumMap代替序数索引的相关内容,具体介绍如下. 学习笔记<Effective Java 中文版 第2版> 经常会碰到使用Enum的ordinal方法来索引枚举类型. public class Herb { public enum Type { ANNUAL, PERENNIAL, BIENNIAL }; private final String name; private final Type type; Herb(String name, Type type)

  • Hibernate初体验及简单错误排除代码详解

    Hibernate是什么,有多少好处,想必查找这类博文的都知道,所以就不多说了.下面是我对Hibernate简单使用的一个小小的总结.与君(主要是刚入门的)共勉吧! 创建的顺序 创建Hibernate的配置文件 创建持久化的类 创建对象-关系的映射文件 通过HibernateAPI编写访问数据库的代码 关于详细的步骤 导入Hibernate必须的jar包(hibernate-release-版本号.Final\lib\required) 然后是导入MySQL的jdbc的驱动(mysql-conn

  • Java中SSM框架实现增删改查功能代码详解

    记录一下自己第一次整合smm框架的步骤. 参考博客和网站有:我没有三颗心脏 How2J学习网站 1.数据库使用的是mySql,首先创建数据库ssm1,并创建表student create database ssm1; use ssm1; CREATE TABLE student( id int(11) NOT NULL AUTO_INCREMENT, student_id int(11) NOT NULL UNIQUE, name varchar(255) NOT NULL, age int(1

  • springboot多数据源配置及切换的示例代码详解

    注:本文的多数据源配置及切换的实现方法是,在框架中封装,具体项目中配置及使用,也适用于多模块项目 配置文件数据源读取 通过springboot的Envioment和Binder对象进行读取,无需手动声明DataSource的Bean yml数据源配置格式如下: spring: datasource: master: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url:

  • SQL行转列和列转行代码详解

    行列互转,是一个经常遇到的需求.实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现. 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和总结过.为了加深认识,再总结一次. 行列互转,可以分为静态互转,即事先就知道要处理多少行(列);动态互转,事先不知道处理多少行(列). --创建测试环境 USE tempdb; GO IF OBJECT_ID('dbo.Orders') IS NOT NULL DROP TABLE dbo.Orde

随机推荐