万维易源使用帮助手册
[TOC]
我们在使用各种语言的驱动连接MongoDB时,是这个样子的:

------------
而如果使用易源平台操作MySQL,则会是这个样子的:

可以看到易源把所有驱动都屏蔽了,只对外部客户端暴露简单易用的http接口。也就是说:**您可以用http接口,对MongoDB进行增删查改操作。**
易源的MongoDB连接器将MongoDB数据库转化为通用数据源,并可以使用http接口进行全部数据库操作,包括但不限于增、删、查、改方法。
<br/>
# 1 创建表
MongoDB是对象数据库,由于其特殊性,不需要在使用前单独创建表。
比如我有一个实体对象,{"name":"张三"},需要把它保存到Student表去,如果用java,则可以使用以下代码:
```java
db.collection("Student").insert({"name":"张三"})
```
插入记录时,Mongodb会先检查Student表是否存在,如果没有则创建,如果有则沿用。
> 在使用Mongodb时,创建表从来不是一个大问题,建表之后添加索引,这才是重点,而且也是很多用户朋友会忽略的问题。
# 2 插入记录
既然不需要要事先建表,那现在来插入一条记录,如下操作:

<br/><br/><br/><br/>
# 3 查看所有数据表
我们来验证下刚才插入时,是否有新表建立。如下操作:

也可以打开MySQL客户端,查看表结构:

<br/><br/><br/><br/>
# 4 插入记录(高级用法)
在上面的章节中,您需要构建一个这样的对象,然后把它tostring()过来:
```json
{
"name": "李四",
"age": 28
}
```
感觉还是麻烦。假设我要插入一条新记录,这条记录有10个字段,其中8个字段是默认值,不需要外面传入,只有2个变量是客户端传入,我们也可以在上面的章节基础上,做一些高级用法。
<br/><br/>
## 4.1 定义输入参数
以上面的例子,新插入的记录中有 name和age两个字段,我们也可以这样定义:

后面我们需要把表单post过来的name,age字段合成MongoDB连接器认识的格式(一个JSON对象,就是在2小节中的new_obj字段),那如何合成呢,我们往下走。
好,我们接着往下走。
<br/><br/>
## 4.2 定义合成字段
<br/><br/>
## 4.3 查看效果

<br/><br/>
## 5 查询列表
现在来验证一下刚才插入的数据是什么样子的。

<br/><br/>
## 6 查询单条记录
很多时候只想查询单条记录,比如通过id获取,我们看下怎么操作:
<br/><br/>
## 7 查询单条记录(高级用法)
采用【合成字段配置】的方法,可以实现很多用法。
以上小节为例,您可能会想,我能不能只输入一个_id参数就能查询呢?collection、fields、orderby这些我一个也不想见到!
可以的,我们来看怎么做。
首先,按照您的想法,只要客户端输入_id参数,那我们这样定义:

客户端看不到collection、fields、orderby这些参数,并不代表MongoDB连接器胃口不好,不吃它们了。易源会把这些参数传给后端MongoDB连接器。当然,还差一个字段query没有定义,而它是必需的,怎么样把传入的_id合成query字段呢?我们来看下图:

我们在合成字段时,需要合成哪些字段,可以参照MongoDB连接器通用模板里需要的参数。
最终效果如下:

<br/><br/>
## 1.8 修改记录
修改操作当然也是必不可少,操作也很简单。

<br/><br/>
## 1.9 删除记录
删除记录的操作与修改操作大同小异。

<br/><br/><br/><br/>
## 1.10 分页查询
待编写。。
<br/><br/><br/><br/>
## 1.11 强大的功能-自定义sql语句
假如我们一个很长的sql语句,涉及子查询、联合查询等,中间只要传入几个变量,能不能实现呢?
答案是可以的,我们可以使用几乎万能的MySql连接器的【自定义sql语句】功能。操作顺如下:
### 第1步:配置连接

<br/><br/><br/><br/>
### 第2步:配置req请求

<br/><br/><br/><br/>
### 第3步:进行测试

<br/><br/>
客户端完全看不到sql语句的样子,它只需要知道输入参数id即可。
# 2. 总结
用易源操作数据库非常简单,而且是多种数据库的http操作类似,这样您不需要再了解各种数据库驱动程序的用法,就算是开发新手也能以最快的速度操作数据库,以完成您的核心业务。
总体来说,使用易源连接器操作MySQL有以下优点:
1. 把数据库操作HTTP化,使用门槛几乎降低为0。
2. 连接器自带连接池,可以保证极高性能(Http的损耗相对于业务处理的时间来说可以忽略)。
3. 采用在合成语句中挖空变量,从客户端传值的方式,极大地便利了业务端API的建立。
4. 权限容易控制,有日志,有监控,有报警。