zoukankan      html  css  js  c++  java
  • Mongodb in Mycat指南

     

    1       前言

    Mycat目前支持JDBC连接后端数据库,理论上支持任何数据库,如ORACLE、DB2、SQL Server等,是将其模拟为MySQL,所以对其他数据库只支持标准的SQL语句,而对NoSQL的支持,是封装NoSQL API 基于JDBC的实现。

     

    2       MongoDB in Mycat

     Mycat1.3实现了对mongodb的支持。

    2.1     配置支持Mongodb

    修改conf下的配置schema.xml文件中的以下内容:

    配置dataHost

    在<dataHost></dataHost>节点下在新增一个mongodb的连接

        <dataHost name="jdbchost" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="mongodb" dbDriver="jdbc">

           <heartbeat>select user()</heartbeat>

           <writeHost host="hostM" url="mongodb://192.168.0.99/" user="admin" password="123456" ></writeHost>

        </dataHost>  

    配置表:

    在<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">下加上表:

    <table name="people" primaryKey="_ID"  dataNode="dn4" />

    配置dataNode:

    在 <dataNode>加上个节点:

    <dataNode name="dn4" dataHost="jdbchost" database="test" />

    dbDriver一定为jdbc

    dbType代表数据库类型,可以为mysql,oracle,mongodb

    通过配置这个可以支持其他数据库,

    2.1.1  支持oracle的配置如下:

           <dataHost name="jdbchost2" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="oracle" dbDriver="jdbc">

                       <heartbeat>select user()</heartbeat>

                       <writeHost host="hostM2" url="jdbc:oracle:thin:@192.168.0.99:1521:orcl" user="jifeng" password="jifeng" ></writeHost>

             </dataHost>   

    table,dataNode同mongodb的配置

    2.2     支持Mongodb原理

    通过实现标准的JDBC接口,调用mongodb api实现对mongodb的操作。

    2.2.1  需要的jar

    mongo-java-driver-2.11.4.jar

       这是mongodb官方提供的支持java的驱动包。

    2.2.2  实现原理

    通过实现标准的JDBC接口,调用mongodb api实现对mongodb的操作:

    (1)解析SQL语句(druid sql parser为SQL解析器)

    (2)转化为mongodb api

    (3)发送到mongodb服务端实现

    2.3     支持的SQL语法

    2.3.1  Create table

    create table people (name varchar(30),age int,sex int,diqu varchar(20),lev int);

    mongodb中不用创建表,也可以使用。

     

    2.3.2  Insert into 插入语句

    insert into people (name,age,sex,diqu,lev) values('cs',22,1,'sz',1);

     

    注意在插入数据的时候,必须有字段名,否则会提示错误:

     

    查询下插入的数据:

     

     

    2.3.3  Update table 更新语句

    update people set age =23 where name='mongo';

     

    2.3.4  Select 查询语句

    2.3.4.1 支持*的查询

    select * from people where name='mongo';

     

    2.3.4.2 支持指定字段名的查询

    select name,age from people where name='mongo';

     

    不过会显示mongodb默认的_id字段,下次升级可解决这个问题。

    2.3.4.3 where条件

    2.3.4.3.1       支持等于:

    select name,age from people where name='mongo';

    2.3.4.3.2       支持大于:

     

    2.3.4.3.3       支持小于:

     

    2.3.4.3.4       支持小于等于:

     

    2.3.4.3.5       支持大于等于

     

    2.3.4.3.6       支持不等于

     

    2.3.4.3.7       支持AND

     

    支持and表示范围

     

    支持多个and

     

     

    2.3.4.3.8       支持OR

     

     

    支持多个or

     

    2.3.4.3.9       支持AND 和OR混合条件

     

     

    2.3.4.4 排序

    支持升降序

     

    多字段排序

     

    2.3.4.5 支持Limit

     

     

     

    2.3.5  Delete删除语句

    delete from people where name='zz';

     

    2.3.6  Drop语句

    drop table people;

    删除表

    2.4     分片

    多个节点的查询出来的数据会自动合并,但目前不支持分页,排序等。

    2.5     升级

    未来支持聚合运算等。

  • 相关阅读:
    java 基础(Collections 工具类的常用方法)
    Java 基础( Map 实现类: Properties)
    Java 基础(Map)
    Java 基础(集合三)
    Java 基础(集合二)
    Java 基础(集合一)
    Java 基础(Annotation)
    CentOS7 系统 springboot应用启动脚本
    GenericObjectPool源码分析
    问题springboot项目启动报错
  • 原文地址:https://www.cnblogs.com/liang545621/p/8417548.html
Copyright © 2011-2022 走看看