码迷,mamicode.com
首页 > 数据库 > 详细

Mongodb in Mycat指南

时间:2018-02-05 15:11:08      阅读:2546      评论:0      收藏:0      [点我收藏+]

标签:语法   inf   creat   删除   driver   from   write   文件   未来   

 

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     升级

未来支持聚合运算等。

Mongodb in Mycat指南

标签:语法   inf   creat   删除   driver   from   write   文件   未来   

原文地址:https://www.cnblogs.com/liang545621/p/8417548.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!