通过torodb && hasura graphql 让mongodb 快速支持graphql api
torodb 可以方便的将mongo 数据实时同步到pg,hasura graphql 可以方便的将pg 数据暴露为graphql 
api,集成在一起真的很方便
环境准备
- docker-compose 文件
 
version: '2'
services:
  graphql-engine:
    image: hasura/graphql-engine:v1.0.0-alpha27
    ports:
    - "8080:8080"
    command: >
      /bin/sh -c "
      graphql-engine --database-url postgres://postgres@postgres/torod serve --enable-console;
      "
  torodb-stampede:
    image: torodb/stampede
    links:
      - postgres
      - mongodb
    environment:
      - POSTGRES_PASSWORD
      - TORODB_SETUP=true
      - TORODB_SYNC_SOURCE=mongodb:27017
      - TORODB_BACKEND_HOST=postgres
      - TORODB_BACKEND_PORT=5432
      - TORODB_BACKEND_DATABASE
      - TORODB_BACKEND_USER
      - TORODB_BACKEND_PASSWORD
      - DEBUG
  postgres:
    image: postgres:9.6
    environment:
      - POSTGRES_PASSWORD
    ports:
      - "15432:5432"
  mongodb:
    image: mongo:3.2
    ports:
      - "28017:27017"
    entrypoint:
      - /bin/bash
      - "-c"
      - mongo --nodb --eval '
            var db;
            while (!db) {
                try {
                  db = new Mongo("mongodb:27017").getDB("local");
                } catch(ex) {}
                sleep(3000);
            };
            rs.initiate({_id:"rs1",members:[{_id:0,host:"mongodb:27017"}]});
        ' 1>/dev/null 2>&1 &
        mongod --replSet rs1
- 启动
 
docker-compose up -d
测试数据添加
可以使用工具连接,直接导入数据都是可以的
graphql 集成
- 添加支持 
 

 - 查询 

 
说明
集成起来,简直太方便了
参考资料
https://github.com/rongfengliang/torodb-hasuar-graphql 
https://www.torodb.com/ 
https://docs.hasura.io/1.0/graphql/manual/index.html
通过torodb && hasura graphql 让mongodb 快速支持graphql api的更多相关文章
- 使用lua graphql 模块让openresty 支持graphql api
		
graphql 是一个很不错的api 查询标准语言,已经有一个lua 的版本支持graphql 项目使用docker&&docker-compose 运行 环境准备 模块安装 lu ...
 - MongoDb 快速入门教程
		
文章首发于[博客园-陈树义],点击跳转到原文MongoDb 快速入门教程. MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的 ...
 - MongoDb 快速翻页方法
		
翻阅数据是MongoDB最常见的操作之一.一个典型的场景是需要在你的用户界面中显示你的结果.如果你是批量处理的数据,同样重要的是要让你的分页策略正确,以便你的数据处理可以规模化. 接下来,让我们通过一 ...
 - MongoDB快速入门指南与docker-compose快体验
		
MongoDB快速入门指南与docker-compose快体验 MongoDB相对于RDBMS的优势 模式少 -MongoDB是一个文档数据库,其中一个集合包含不同的文档.一个文档之间的字段数,内容和 ...
 - Spring Boot GraphQL 实战 01_快速入门
		
hello,大家好,我是小黑,又和大家见面啦~ 新开一个专题是关于 GraphQL 的相关内容,主要是通过 Spring Boot 来快速开发 GraphQL 应用,希望对刚接触 GraphQL 的同 ...
 - 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
		
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
 - 使用ASP.NET Core支持GraphQL -- 较为原始的方法
		
GraphQL简介 下面是GraphQL的定义: GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述 ...
 - 让ASP.NET Core支持GraphQL之-GraphQL的实现原理
		
众所周知RESTful API是目前最流行的软件架构风格之一,它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. RESTful的优越性是毋庸置疑 ...
 - GraphQL搭配MongoDB入门项目实战
		
什么是GraphQL GraphQL 是一种面向 API 的查询语言.在互联网早期,需求都以 Web 为主,那时候数据和业务需求都不复杂,所以用 RestAPI 的方式完全可以满足需求.但是随着互联网 ...
 
随机推荐
- 41  MYSQL  索引和慢查询优化
			
一 .索引mysql 索引 b+tree 本质:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数 ...
 - scrapy微信爬虫使用总结
			
scrapy+selenium+Chrome+微信公众号爬虫 概述 1.微信公众号爬虫思路: 参考:记一次微信公众号爬虫的经历 2.scrapy框架图 3.scrapy经典教程 参考: python ...
 - python-day7-字符串类型的内置方法
			
# name='egon' #name=str('egon')# print(type(name)) #优先掌握# 移除空白strip# msg=' hello '# print(msg)# prin ...
 - vijos  1423  最短路or环(有向图)
			
最佳路线 描述 年久失修的赛道令国际汽联十分不满.汽联命令主办方立即对赛道进行调整,否则将取消其主办权.主办方当然必须马上开始行动. 赛道测评人员经过了三天三夜的数据采集,选出了若干可以使用的道路和各 ...
 - 全源最短路径 - floyd算法 - O(N ^ 3)
			
Floyd-Warshall算法的原理是动态规划. 设Di,j,k为从i到j的只以(1..k)集合中的节点为中间节点的最短路径的长度. 若最短路径经过点k,则Di,j,k = Di,k,k − 1 + ...
 - OC MRC之 @property参数(代码分析)
			
第一部分 // // main.m // 04-@property参数 // // Created by apple on 13-8-9. // Copyright (c) 2013年 itcast. ...
 - httpclient 连接保持
			
http连接重用 从一个主机向另外一个建立连接的过程时相当复杂的,而且包含了两个终端之间的很多包的交换,它是相当费时的. 连接握手的开销是很重要的,特别是对小量的HTTP报文. 如果打开的连接被重用来 ...
 - 快速切题 poj3414 Pots
			
Pots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10042 Accepted: 4221 Special J ...
 - python3 scrapy 爬取腾讯招聘
			
安装scrapy不再赘述, 在控制台中输入scrapy startproject tencent 创建爬虫项目名字为 tencent 接着cd tencent 用pycharm打开tencent项目 ...
 - Java——线程定时器
			
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...