Upload
kiyoshi-sawada
View
39
Download
3
Embed Size (px)
Citation preview
EWD 3トレーニング・コース #23
Global ストレージの JavaScript 用の抽
象化 (d) ノードの範囲を渡り歩くM/Gateway Developments Ltd.
Rob Tweed訳 : 日本ダイナシステム株式会社 嶋 芳成
GT.M 版編集 : 澤田 潔
※ 本稿オリジナルは Cache’ 向けとして編纂
2
特定の節 ( ノード ) について繰り返しを制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
2016/9/18 EWD 3 トレーニング・コース #23
3
特定の節 ( ノード ) について繰り返しを制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
• Br で始まる名前のみを得ます• Briggs• Bryant
• そしてその名前の各インスタンスのデータ・レコードを取得する
2016/9/18 EWD 3 トレーニング・コース #23
4
特定の節 ( ノード ) について繰り返しを制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
forEachChild({prefix: 'Br'}, function{...});
• ここでも制御オブジェクト引数を用います• ここでは前方一致でループを
制限します
2016/9/18 EWD 3 トレーニング・コース #23
5
特定の節 ( ノード ) について繰り返しを制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode){ // Br ではじまる名前の、その下位節に制限してループする});
2016/9/18 EWD 3 トレーニング・コース #23
6
特定の節 ( ノード ) について繰り返しを制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode){ childNode.forEachChild(function(id){ // Br ではじまる名前の、各 id を取得する });});
2016/9/18 EWD 3 トレーニング・コース #23
7
特定の節 ( ノード ) について繰り返しを制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode){ childNode.forEachChild(function(id){ console.log(id); });});
2016/9/18 EWD 3 トレーニング・コース #23
210 386 23 5321
8
Customer ドキュメントに対する索引
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
customer(id, プロパティ ) = 値
2016/9/18 EWD 3 トレーニング・コース #23
9
Customer ドキュメントに対する索引
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
customer(id, プロパティ ) = 値
2016/9/18 EWD 3 トレーニング・コース #23
10
Customer ドキュメントに対する索引
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
customer(id, プロパティ ) = 値
customer = { '386': { firstName: 'John', lastName: 'Briggs', address: '123 Acacia Drive', // ... など }, // ... など}
2016/9/18 EWD 3 トレーニング・コース #23
11
Customer ドキュメントに対する索引
customer(id, プロパティ ) = 値
customer = { '386': { firstName: 'John', lastName: 'Briggs', address: '123 Acacia Drive', // ... など }, // ... など}
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
12
Customer ドキュメントに対する索引
customer(386,"firstName") ="John"customer(386,"lastName")="Briggs"customer(386,"address")="123 Acacia Drive"
customer というドキュメントを Global ストレージの中で表現すると上記のようになります
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
13
Customer ドキュメントに対する索引
customer(386,"firstName") ="John"customer(386,"lastName")="Briggs"customer(386,"address")="123 Acacia Drive"
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var customer new this.documentStore.DocumentNode('customer');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode) { childNode.forEachChild(function(id) { // id を用いて、メインのデータ・レコードを指し示します var address =customer.$(id).$('address').value; // ... など });});
14
Customer ドキュメントに対する索引
customer(386,"firstName") ="John"customer(386,"lastName")="Briggs"customer(386,"address")="123 Acacia Drive"
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var customer new this.documentStore.DocumentNode('customer');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode) { childNode.forEachChild(function(id) { // id を用いて、メインのデータ・レコードを指し示します var address =customer.$(id).$('address').value; // ... など });});
15
Customer ドキュメントに対する索引
customer(386,"firstName") ="John"customer(386,"lastName")="Briggs"customer(386,"address")="123 Acacia Drive"
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var customer new this.documentStore.DocumentNode('customer');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode) { childNode.forEachChild(function(id) { // id を用いて、メインのデータ・レコードを指し示します var address =customer.$(id).$('address').value; // ... など });});
16
Customer ドキュメントに対する索引
customer(386,"firstName") ="John"customer(386,"lastName")="Briggs"customer(386,"address")="123 Acacia Drive"
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var customer new this.documentStore.DocumentNode('customer');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode) { childNode.forEachChild(function(id) { // id を用いて、メインのデータ・レコードを指し示します var address =customer.$(id).$('address').value; // ... など });});
17
Customer ドキュメントに対する索引
customer(386,"firstName") ="John"customer(386,"lastName")="Briggs"customer(386,"address")="123 Acacia Drive"
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var customer new this.documentStore.DocumentNode('customer');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode) { childNode.forEachChild(function(id) { // id を用いて、メインのデータ・レコードを指し示します var address =customer.$(id).$('address').value; // ... など });});
18
Customer ドキュメントに対する索引
customer(386,"firstName") ="John"customer(386,"lastName")="Briggs"customer(386,"address")="123 Acacia Drive"
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var customer new this.documentStore.DocumentNode('customer');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode) { childNode.forEachChild(function(id) { // id を用いて、メインのデータ・レコードを指し示します var address =customer.$(id).$('address').value; // ... など });});
19
Customer ドキュメントに対する索引
customer(386,"firstName") ="John"customer(386,"lastName")="Briggs"customer(386,"address")="123 Acacia Drive"
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var customer new this.documentStore.DocumentNode('customer');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode) { childNode.forEachChild(function(id) { // id を用いて、メインのデータ・レコードを指し示します var address =customer.$(id).$('address').value; // ... など });});
20
Customer ドキュメントに対する索引
customer(386,"firstName") ="John"customer(386,"lastName")="Briggs"customer(386,"address")="123 Acacia Drive"
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var customer new this.documentStore.DocumentNode('customer');
index.forEachChild({prefix: 'Br'}, function(nodeName, childNode) { childNode.forEachChild(function(id) { // id を用いて、メインのデータ・レコードを指し示します var address =customer.$(id).$('address').value; // ... など });});
21
同じ文字列で始まる索引を逆順に繰り返す
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
22
同じ文字列で始まる索引を逆順に繰り返す
2016/9/18 EWD 3 トレーニング・コース #23
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var params = {prefix: 'Br', direction: 'reverse'};index.forEachChild(params, function(nodeName, childNode) { childNode.forEachChild(function(id) { console.log(id) });});
23
同じ文字列で始まる索引を逆順に繰り返す
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
制御オブジェクトを使うことで、先頭の文字列と検索順序を組み合わせて設定することができます
2016/9/18 EWD 3 トレーニング・コース #23
var index = new this.documentStore.DocumentNode('myIndex');var params = {prefix: 'Br', direction: 'reverse'};index.forEachChild(params, function(nodeName, childNode) { childNode.forEachChild(function(id) { console.log(id) });});
24
同じ文字列で始まる索引を逆順に繰り返す
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
制御オブジェクトを使うことで、先頭の文字列と検索順序を組み合わせて設定することができます
2016/9/18 EWD 3 トレーニング・コース #23
var index = new this.documentStore.DocumentNode('myIndex');var params = {prefix: 'Br', direction: 'reverse'};index.forEachChild(params, function(nodeName, childNode) { childNode.forEachChild(function(id) { console.log(id) });}); 23
5321 210 386
25
同じ文字列で始まる索引を逆順に繰り返す
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
制御オブジェクトを使うことで、先頭の文字列と検索順序を組み合わせて設定することができます
2016/9/18 EWD 3 トレーニング・コース #23
var index = new this.documentStore.DocumentNode('myIndex');var params = {prefix: 'Br', direction: 'reverse'};index.forEachChild(params, function(nodeName, childNode) { childNode.forEachChild(function(id) { console.log(id) });}); 23
5321 210 386
内側のループは昇順です
26
同じ文字列で始まる索引を逆順に繰り返す
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
内側のループについても逆順にするために制御オブジェクトを用います
2016/9/18 EWD 3 トレーニング・コース #23
var index = new this.documentStore.DocumentNode('myIndex');var params = {prefix: 'Br', direction: 'reverse'};index.forEachChild(params, function(nodeName, childNode) { childNode.forEachChild({direction: 'reverse'}, function(id) { console.log(id) });});
27
同じ文字列で始まる索引を逆順に繰り返す
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
内側のループについても逆順にするために制御オブジェクトを用います
2016/9/18 EWD 3 トレーニング・コース #23
var index = new this.documentStore.DocumentNode('myIndex');var params = {prefix: 'Br', direction: 'reverse'};index.forEachChild(params, function(nodeName, childNode) { childNode.forEachChild({direction: 'reverse'}, function(id) { console.log(id) });}); 5321
23 386 210
これで出力は完全に逆順になりました
28
繰り返しの範囲を制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
添え字 1 から
添え字 2 まで
例えば、 Briggs から Davis まで
2016/9/18 EWD 3 トレーニング・コース #23
29
繰り返しの範囲を制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
添え字 1 から
添え字 2 まで
例えば、 Briggs から Davis まで
forEachChild({ range: { from: 'Briggs', to: 'Davis' }}, function{...})
2016/9/18 EWD 3 トレーニング・コース #23
30
繰り返しの範囲を制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
もっとありそうな制限方法
forEachChild({ range: { from: 'Br', to: 'Da' }}, function{...})
2016/9/18 EWD 3 トレーニング・コース #23
from と to で、返す節 ( ノード ) の始まる文字列を定義します
31
繰り返しの範囲を制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
あるいは
forEachChild({ range: { from: 'B', to: 'D' }}, function{...})
2016/9/18 EWD 3 トレーニング・コース #23
from と to で、返す節 ( ノード ) の始まる文字列を定義します
32
繰り返しの範囲を制限する
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var params = { range: { from: 'Br', to: 'Da" }};index.forEachChild(params, function(name, childNode){ childNode.forEachChild(function(id){ console.log(id); });});
2016/9/18 EWD 3 トレーニング・コース #23
33
繰り返しの範囲を制限して逆順にする?
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var params = { range: { from: 'Br', to: 'Da" }};index.forEachChild(params, function(name, childNode){ childNode.forEachChild(function(id){ console.log(id); });});
2016/9/18 EWD 3 トレーニング・コース #23
210 386 23 5321 641 714 13 8142 9112
34
繰り返しの範囲を制限して逆順にする?
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
2016/9/18 EWD 3 トレーニング・コース #23
35
繰り返しの範囲を制限して逆順にする?
myIndex("Andrews",103)=""myIndex("Barton",23)=""myIndex("Briggs",210)=""myIndex("Briggs",386)=""myIndex("Bryant",23)=""myIndex("Bryant",5321)=""myIndex("Davies",641)=""myIndex("Davies",714)=""myIndex("Davis",13)=""myIndex("Davis",8142)=""myIndex("Davis",9112)=""myIndex("Douglas",651)=""myIndex("Ennis",108)=""myIndex("Ennis",712)=""
var index = new this.documentStore.DocumentNode('myIndex');var params = { direction: 'reverse', range: { from: 'Br', to: 'Da" }};index.forEachChild(params, function(name, childNode){ childNode.forEachChild(function(id){ console.log(id); });});
制御オブジェクトには、範囲と逆順を組み合わせることができます
2016/9/18 EWD 3 トレーニング・コース #23