MongoDB是什么

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

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB的特点

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
*面向集合存储,易存储对象类型的数据。
*模式自由。
*支持动态查询。
*支持完全索引,包含内部对象。
*支持查询。
*支持复制和故障恢复。
*使用高效的二进制数据存储,包括大型对象(如视频等)。
*自动处理碎片,以支持云计算层次的扩展性。
*支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
*文件存储格式为BSON(一种JSON的扩展)。
*可通过网络访问。

MongoDB的使用(Windows平台,Java中使用MongoDB)

这里以Windows操作系统为例,描述使用Java操作MongoDB的方法。

首先是在Windows中安装MongoDB,进入MongoDB的官网https://www.mongodb.com/,然后点击页面右上角的Download按钮,选择对应版本的MongoDB下载并安装,安装时切记要选择非系统盘安装,不然后面的操作会需要Admin权限,会非常麻烦。

安装好MangoDB后,需要到这里:http://mongodb.github.io/mongo-java-driver/下载Java可用的驱动,这个地方比较坑的一点是,一定要选择mongo-java-driver而不能选择了mongodb-driver,如下图所示:

mongodb底层原理 mongodb基本概念_Java

我最开始因为下错了jar包,导致在java中连接mongoDB一直报错:找不到com.mongo.ServerAdress。

上面两步完成后,接下来新建一个Java项目,然后将上面下载的驱动jar包导入项目,接下来就是代码了:

/**
 * MongoDB的使用
 */
public class Test {

    public static void main(String[] args) {
        try {
            MongoClient mongoClient = new MongoClient("localhost", 27017);
            MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
            System.out.println("connect to database success!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

如果Mongo服务没有开启的话,上面的代码执行应该会报错,这时候我们需要从MongoDB的安装目录中启动服务,启动方法是,进入MongoDB安装目录中的bin目录下,然后执行命令:mongod -dbpath "G:\Program Files\MongoDB\data\db",这里的"G:\Program Files\MongoDB\data\db"是数据库存放的目录,可以自己指定,执行完上面的命令后,控制台中应该会有如下内容打印:

mongodb底层原理 mongodb基本概念_mongodb底层原理_02


这时候我们在浏览器中访问http://localhost:27017/,应该会出现下面的提示界面:

mongodb底层原理 mongodb基本概念_关系数据库_03

这就表明MongoDB的服务已启动,再次运行上面的java代码,应该就不会报错了,我的机器上执行结果如下图:

mongodb底层原理 mongodb基本概念_关系数据库_04


下一篇将记录如何使用Java操作MongoDB,包括数据的增、删、改、查。