EWD 3トレーニングコース#23 GlobalストレージのJavaScript用抽象化-(d)...

Preview:

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

Recommended