Enviar pesquisa
Carregar
Couchbase MeetUP Tokyo - #11 Omoidenote
•
1 gostou
•
696 visualizações
K
kitsugi
Seguir
Couchbase モバイルハッカソンで優勝したアプリ 「おもいでノート」 Couchbase MeetUP Tokyo - #11 の勉強会で発表した資料です。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 42
Baixar agora
Baixar para ler offline
Recomendados
はじめてのCouch db
はじめてのCouch db
Eiji Kuroda
Osc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-database
Toshi Harada
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
Chugokudb study-20150131
Chugokudb study-20150131
Toshi Harada
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
Jun Ohtani
Firefox Add-on SDK 入門
Firefox Add-on SDK 入門
Shoot Morii
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
Hiroki Ishikawa
Heroku Postgres
Heroku Postgres
Ayumu Aizawa
Recomendados
はじめてのCouch db
はじめてのCouch db
Eiji Kuroda
Osc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-database
Toshi Harada
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
Chugokudb study-20150131
Chugokudb study-20150131
Toshi Harada
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
Jun Ohtani
Firefox Add-on SDK 入門
Firefox Add-on SDK 入門
Shoot Morii
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
Hiroki Ishikawa
Heroku Postgres
Heroku Postgres
Ayumu Aizawa
Apache Torqueについて
Apache Torqueについて
tako pons
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Daiki Ichinose
はじめてのMongoDB
はじめてのMongoDB
Keisuke Izumiya
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
fukuoka.ex
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
Shigeo Ueda
Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019
David Buck
20140903groonga発表資料
20140903groonga発表資料
Hironobu Saitoh
ServiceStackの紹介
ServiceStackの紹介
wilfrem
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 Spring
Eiji Shinohara
NIO.2を使って簡単ファイル操作
NIO.2を使って簡単ファイル操作
Yuichi Sakuraba
Getting Started Japanese Search and Calculate Similarity with Apache Lucene
Getting Started Japanese Search and Calculate Similarity with Apache Lucene
Eiji Shinohara
SQLチューニング入門 入門編
SQLチューニング入門 入門編
Miki Shimogai
Develop Web Application with Node.js + Express
Develop Web Application with Node.js + Express
Akinari Tsugo
難しそうで難しくない少し難しいClojure並行処理
難しそうで難しくない少し難しいClojure並行処理
Naoyuki Kakuda
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
Tottoruby 20110903
Tottoruby 20110903
Takashi SAKAGUCHI
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
Yuji Isobe
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
Kazuki Nakajima
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」
Kohsuke Kawaguchi
Mais conteúdo relacionado
Mais procurados
Apache Torqueについて
Apache Torqueについて
tako pons
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Daiki Ichinose
はじめてのMongoDB
はじめてのMongoDB
Keisuke Izumiya
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
fukuoka.ex
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
Shigeo Ueda
Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019
David Buck
20140903groonga発表資料
20140903groonga発表資料
Hironobu Saitoh
ServiceStackの紹介
ServiceStackの紹介
wilfrem
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 Spring
Eiji Shinohara
NIO.2を使って簡単ファイル操作
NIO.2を使って簡単ファイル操作
Yuichi Sakuraba
Getting Started Japanese Search and Calculate Similarity with Apache Lucene
Getting Started Japanese Search and Calculate Similarity with Apache Lucene
Eiji Shinohara
SQLチューニング入門 入門編
SQLチューニング入門 入門編
Miki Shimogai
Develop Web Application with Node.js + Express
Develop Web Application with Node.js + Express
Akinari Tsugo
難しそうで難しくない少し難しいClojure並行処理
難しそうで難しくない少し難しいClojure並行処理
Naoyuki Kakuda
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
Tottoruby 20110903
Tottoruby 20110903
Takashi SAKAGUCHI
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
Yuji Isobe
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
Kazuki Nakajima
Mais procurados
(19)
Apache Torqueについて
Apache Torqueについて
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
はじめてのMongoDB
はじめてのMongoDB
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
Valhalla Update JJUG CCC Spring 2019
Valhalla Update JJUG CCC Spring 2019
20140903groonga発表資料
20140903groonga発表資料
ServiceStackの紹介
ServiceStackの紹介
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 Spring
NIO.2を使って簡単ファイル操作
NIO.2を使って簡単ファイル操作
Getting Started Japanese Search and Calculate Similarity with Apache Lucene
Getting Started Japanese Search and Calculate Similarity with Apache Lucene
SQLチューニング入門 入門編
SQLチューニング入門 入門編
Develop Web Application with Node.js + Express
Develop Web Application with Node.js + Express
難しそうで難しくない少し難しいClojure並行処理
難しそうで難しくない少し難しいClojure並行処理
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
Tottoruby 20110903
Tottoruby 20110903
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
Semelhante a Couchbase MeetUP Tokyo - #11 Omoidenote
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」
Kohsuke Kawaguchi
Parse触ってみた
Parse触ってみた
Naoya Harasawa
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
Yuji Takayama
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
OpenStack API
OpenStack API
Akira Yoshiyama
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
JPCERT Coordination Center
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
fukuoka.ex
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
fukuoka.ex
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
decode2016
初めての Data api
初めての Data api
Yuji Takayama
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake
Data api workshop at Co-Edo
Data api workshop at Co-Edo
Yuji Takayama
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Preferred Networks
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
Shinsuke Sugaya
HTML5&API総まくり
HTML5&API総まくり
Shumpei Shiraishi
現場的!AWSとオンプレの違い(赤べこバージョン)
現場的!AWSとオンプレの違い(赤べこバージョン)
真吾 吉田
Semelhante a Couchbase MeetUP Tokyo - #11 Omoidenote
(20)
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」
Parse触ってみた
Parse触ってみた
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
OpenStack API
OpenStack API
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
初めての Data api
初めての Data api
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Data api workshop at Co-Edo
Data api workshop at Co-Edo
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
HTML5&API総まくり
HTML5&API総まくり
現場的!AWSとオンプレの違い(赤べこバージョン)
現場的!AWSとオンプレの違い(赤べこバージョン)
Último
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Último
(12)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Couchbase MeetUP Tokyo - #11 Omoidenote
1.
1 Couchbase MeetUP
Tokyo - #11
2.
自己紹介 2 •木次
恭一 •Twitter: @kyoichi_kitsugi •ウイングソリューションズ(株) •仕事ではJavaがメイン •最近では Sencha Touch, ElasticSearchなど
3.
Couchbase Mobileとの出会い 3
MongoDB CouchDB TouchDB Couchbase Server Sync Gateway Couchbase Lite CouchDB NoSQL に興味 JSON 大好き モバイル 大好き
4.
Couchbase Mobile Hackathon
4 ハッカソン開催 •2014年9月7日開催 •向上心溢れる暇な人が集結 •Couchbase Liteを利用したアプリを作成 •優勝したら一人だけサンフランシスコに行ける
5.
Couchbase Mobile Hackathon
5 ROUND 1 FIGHT
6.
Couchbase Mobile Hackathon
6 TIME OVER 5時間じゃ厳しいっす!!
7.
Couchbase Mobile Hackathon
7 ヒソ( ´д)ヒソ(´д`)ヒソ(д` )ヒソ 審査中 ネェ、キイタ?( ´д)オクサン(д` )アラヤダワァ
8.
Couchbase Mobile Hackathon
8 優勝
9.
Couchbase Mobile Hackathon
9 勝因をしいてあげるなら •チームの人数が多かった •プレゼン資料が良かった •画面数が一番多かった
10.
おもいでノート 10 行ったことがある場所A
B Tom Jerry 行ったことがない場所C 行った事がある場所は 自宅で閲覧・更新が可能 その場所に行かないと 何も出来ない
11.
おもいでノート 11 デモ
https://github.com/kitsugi/omoidebase
12.
おもいでノート 12 行ったことがない場所
13.
Couchbase Connect 13
•2014年10月6日~7日開催 •サンフランシスコ •全米No1と僕が思ったNoSQLカンファレンス •スタバのコーヒーが飲み放題
14.
Couchbase Connectの様子 14
15.
Couchbase Connectの様子 15
16.
Couchbase Connectの様子 16
17.
Couchbase Connectの様子 17
18.
Couchbase Connectの様子 18
19.
Couchbase Connectの様子 19
20.
おもいでノート 20 ドキュメント
21.
Document種別 21 場所
place コメント comment プロフィール コメント コメント tom comment comment 場所 place コメント comment コメント comment プロフィール jerry
22.
場所 { "type"
: "place", "code" : "ADAA8D9E-26C4-46F8-9A39-78EFD6DDC3F5", "name" : "Westin San Francisco", "remark": "Couchbase Connect 2014 on Oct 6, 2014 in San Francisco", "location": { "latitude": 37.7876643, "longitude": -122.4090627 }, "image" : "画像 (base64文字列)" }
23.
コメント { "type"
: "comment", "place" : "ADAA8D9E-26C4-46F8-9A39-78EFD6DDC3F5", "created_at" : "2014-11-17T13:56:52+09:00", "contents" : "内容", "image": "画像 (base64文字列)" }
24.
プロフィール { "type"
: "profile", "name" : "tom", "places" : [ "ADAA8D9E-26C4-46F8-9A39-78EFD6DDC3F5", "89B038CD-84A9-442c-95D1-0E22CAF8EB9E" ] }
25.
おもいでノート 25 構築
26.
構成図 Couchbase Server
Sync Gateway おもいでノート (Couchbase Lite) cURL等 :8091 Backet omoidebase :4985 :4984 User, Roleの作成・削除 マスタ投入 おもいでノート (Couchbase Lite) 26 コメント作成コメント作成
27.
構築1:バケット作成 Couchbase Server
:8091 Backet omoidebase Admin Console等
28.
構築2:Sync Gateway起動 Backet
omoidebase Couchbase Server :8091 Sync Gateway Terminal等 ./sync_gateway config.json { "interface": ":4984", "adminInterface": ":4985", "log": [ "REST" ], "databases": { "omoidebase": { "server": "http://localhost:8091", "bucket": "omoidebase", "sync": ` function(doc, oldDoc) { if (doc.type === "profile") { if (doc.places) { for (var i = 0; i < doc.places.length; i++) { access(doc.name, doc.places[i]); } } access(doc.name, doc.name); channel(doc.name); } else if (doc.type === "comment") { channel(doc.place); } else if (doc.type === "place") { channel(doc._id); } }` } } } ※データーベースは複数定義可能 :4984 :4985 Sync Function
29.
構築3:ユーザー作成 Backet omoidebase
Couchbase Server :8091 Sync Gateway :4985 cURL等 tom password curl -XPOST -H "Content-Type: application/json" http://localhost:4985/omoidebase/ _user/ -d @user1.json { "name": "tom", "password": "password" }
30.
構築4:マスタ系データインポート Backet omoidebase
Couchbase Server :8091 Sync Gateway :4985 cURL等 場所プロフィール curl -XPUT -H "Content-Type: application/json" http://localhost:4985/omoidebase/ ADAA8D9E-26C4-46F8-9A39-78EFD6DDC3F5 -d @place1.json curl -XPUT -H "Content-Type: application/json" http://localhost:4985/omoidebase/tom -d @profile1.json
31.
構築5:クライアント同期 Backet omoidebase
Couchbase Server :8091 Sync Gateway :4984 アプリ Couchbase Lite Database omoidebase URL url = new URL("http://localhost:4984/omoidebase"); pull = database.createPullReplication(url); push = database.createPushReplication(url); Authenticator auth = new BasicAuthenticator(“tom”, “password”); pull.setAuthenticator(auth); push.setAuthenticator(auth); pull.start(); push.start(); Sync Function tom password place profile place profile
32.
構築:Couchbase Serverのドキュメント 32
1.バケット作成 なし 2.Sync Gateway起動 ID Content _sync:seq _sync:syncdata { "Sync": " function(doc, oldDoc) {n if (doc.type === "profile… 3.ユーザー作成 ID Content _sync:seq 2 _sync:syncdata { "Sync": " function(doc, oldDoc) {n if (doc.type === ”profile… _sync:user:jerry { "name": "jerry", "all_channels": { }, "sequence": 2, "passwo… _sync:user:tom { "name": "tom", "all_channels": { }, "sequence": 1, "passwo…
33.
構築:Couchbase Serverのドキュメント 33
4.マスタ系データインポート ID Content _sync:seq 7 _sync:syncdata { "Sync": " function(doc, oldDoc) {n if (doc.type === ”profile… _sync:user:jerry { "name": "jerry", "all_channels": { }, "sequence": 2, "passwo… _sync:user:tom { "name": "tom", "all_channels": { }, "sequence": 1, "passwo… ADAA8D9E-26C4-46F8-9A39-78EFD6DDC3F5 { "_sync": { "rev": "1-375de787d53752736649d964197e7a41", "s… 2C139CE5-9B5D-4836-97A3-B25AEC49D6FB { "_sync": { "rev": "1-22476c90d79e6724058271609f1a4408", "s… 89B038CD-84A9-442c-95D1-0E22CAF8EB9E { "_sync": { "rev": "1-4867aafbf14a79607730e3e3f7de6257", "s… jerry { "_sync": { "rev": "1-c0888ab8cf936c83aaf36a10eaca1a8d", "s… tom { "_sync": { "rev": "1-009fa66f707d5e3eea7b2830cff0ea51", "s…
34.
構築:Couchbase Serverのドキュメント 34
5.クライアント同期 ID Content _sync:seq 7 _sync:syncdata { "Sync": " function(doc, oldDoc) {n if (doc.type === ”profile… _sync:user:jerry { "name": "jerry", "all_channels": { }, "sequence": 2, "passwo… _sync:user:tom { "name": "tom", "all_channels": { }, "sequence": 1, "passwo… ADAA8D9E-26C4-46F8-9A39-78EFD6DDC3F5 { "_sync": { "rev": "1-375de787d53752736649d964197e7a41", "s… 2C139CE5-9B5D-4836-97A3-B25AEC49D6FB { "_sync": { "rev": "1-22476c90d79e6724058271609f1a4408", "s… 89B038CD-84A9-442c-95D1-0E22CAF8EB9E { "_sync": { "rev": "1-4867aafbf14a79607730e3e3f7de6257", "s… jerry { "_sync": { "rev": "1-c0888ab8cf936c83aaf36a10eaca1a8d", "s… tom { "_sync": { "rev": "1-009fa66f707d5e3eea7b2830cff0ea51", "s…
35.
おもいでノート 35 Sync
Function
36.
Configuration Files {
"interface": ":4984", "adminInterface": ":4985", "log": [ "REST" ], "databases": { "omoidebase": { "server": "http://localhost:8091", "bucket": "omoidebase", "sync": ` function(doc, oldDoc) { if (doc.type === "profile") { if (doc.places) { for (var i = 0; i < doc.places.length; i++) { access(doc.name, doc.places[i]); } } access(doc.name, doc.name); channel(doc.name); } else if (doc.type === "comment") { channel(doc.place); } else if (doc.type === "place") { channel(doc._id); } }` } } } 36
37.
Sync Function API
37 主な関数 関数名引数説明 throw forbiddenプロパティを含むエラーオブジェクト例外の送出 requireUser username(文字列または文字列の配列) ユーザー名が引数に一致または配列の場合は含まれなければ例外を送出 requireRole rolename(文字列または文字列の配列) ユーザーのロールが引数に一致または配列の場合は含まれなければ例外を送 出 requireAccess channels(文字列または文字列の配列) ユーザーが引数のチャネルのうち少なくとも一つへのアクセスを有していなけ れば例外を送出 channel name(文字列または文字列の配列。nullやundefinedでも可) 引数に指定されたチャネルにドキュメントをルーティングします access username(文字列または文字列の配列。nullやundefinedでも可), channelname(文字列または文字列の配列。nullやundefinedでも可) ユーザーにチャネルへのアクセス権を付与します role username(文字列または文字列の配列。nullやundefinedでも可), rolename(文字列または文字列の配列。nullやundefinedでも可) ユーザーにロールを付与します http://developer.couchbase.com/mobile/develop/guides/sync-gateway/sync-function-api-guide/index.html 重要なのは channelとaccess
38.
場所 チャネル ADAA8D9E-26C4-46F8-9A
39-78EFD6DDC3F5 { "type" : "place", "code" : "ADAA8D9E-26C4-46F8-9A39-78EFD6DDC3F5", "name" : "Westin San Francisco", "remark": "Couchbase Connect 2014 on Oct 6, 2014 in San Francisco", "location": { チャネル 89B038CD-84A9-442c-95 D1-0E22CAF8EB9E チャネル 2C139CE5-9B5D-4836-97 A3-B25AEC49D6FB "latitude": 37.7876643, "longitude": -122.4090627 }, "image" : "画像 (base64文字列)" } if (doc.type === "place") { channel(doc._id); } 場所場所場所
39.
プロフィール if (doc.type
=== "profile") { if (doc.places) { for (var i = 0; i < doc.places.length; i++) { access(doc.name, doc.places[i]); } } access(doc.name, doc.name); channel(doc.name); } プロフィール場所プロフィール場所 チャネル tom チャネル jerry チャネル ADAA8D9E-26C4-46F8-9 A39-78EFD6DDC3F5 tom jerry チャネル 89B038CD-84A9-442c-95 D1-0E22CAF8EB9E { "type" : "profile", "name" : "tom", "places" : [ "ADAA8D9E-26C4-46F8-9A39-78EFD6DDC3F5", "89B038CD-84A9-442c-95D1-0E22CAF8EB9E" ] }
40.
コメント { "type"
: "comment", "place" : "ADAA8D9E-26C4-46F8-9A39-78EFD6DDC3F5", "created_at" : "2014-11-17T13:56:52+09:00", "contents" : "内容", "image": "画像 (base64文字列)" } if (doc.type === "comment") { channel(doc.place); } コメントコメントコメント チャネル ADAA8D9E-26C4-46F8-9 A39-78EFD6DDC3F5 チャネル 89B038CD-84A9-442c-95 D1-0E22CAF8EB9E チャネル 2C139CE5-9B5D-4836-97 A3-B25AEC49D6FB
41.
ポイント •チャネルの範囲を決める •ドキュメントにプロフィール情報を持つ
チャネル ADAA8D9E-26C4-46F8- 9A39-78EFD6DDC3F5 場所 コメント コメント コメント コメント
42.
42 That's all.
Baixar agora