= % T e s t . U s e r { e m a i l : " f o o @ b a r . c o m " , n a m e : % { f i r s t : " b o b " , l a s t : " b u b b a " } , a g e : 2 3 , a d m i n : f a l s e } # = > { : o k , _ } D y n a m o . p u t _ i t e m ( " U s e r s " , u s e r ) | > E x A w s . r e q u e s t GetItem u s e r = T e s t . U s e r | > D y n a m o . g e t _ i t e m ( % { e m a i l : u s e r . e m a i l } ) | > E x A w s . r e q u e s t ! | > D y n a m o . d e c o d e _ i t e m ( a s : T e s t . U s e r ) 9
a m o . q u e r y ( " U s e r s " , # t a b l e n a m e e x p r e s s i o n _ a t t r i b u t e _ n a m e s : [ a g e : " # a g e " ] e x p r e s s i o n _ a t t r i b u t e _ v a l u e s : [ a g e : 2 3 ] , c o n d i t i o n _ e x p r e s s i o n : " A g e = # a g e " ) | > E x A w s . r e q u e s t | > E n u m . m a p ( f n ( i t e m ) - > d e c o d e ( i t e m , m o d e l ) e n d ) DynamoDBのリクエスト生成に精通してないと使いにくい 精通してる人はDynamoDBの機能をフルに使いこなせる 10
c r e a t e _ t a b l e ( " U s e r s " , [ e m a i l : : h a s h , a g e : : r a n g e ] , [ e m a i l : : s t r i n g , a g e : : n u m b e r ] , 1 , 1 ) Surge d e f m o d u l e U s e r d o u s e S u r g e . M o d e l h a s h e m a i l : { : s t r i n g , n i l } r a n g e a g e : { : n u m b e r , n i l } a t t r i b u t e s n a m e : { : s t r i n g , n i l } t h r o u g h p u t r e a d : 1 , w r i t e : 1 e n d S u r g e . D D L . c r e a t e _ t a b l e ( U s e r ) 13
p u t _ i t e m ( " U s e r s " , u s e r ) | > E x A w s . r e q u e s t Surge S u r g e . D M L . p u t _ i t e m ( u s e r , i n t o : T e s t . U s e r ) 14
s t . U s e r | > D y n a m o . g e t _ i t e m ( % { e m a i l : u s e r . e m a i l } ) | > E x A w s . r e q u e s t ! | > D y n a m o . d e c o d e _ i t e m ( a s : T e s t . U s e r ) Surge S u r g e . D M L . g e t _ i t e m ( e m a i l : u s e r . e m a i l , f r o m : T e s t . U s e r ) 15
q u e r y ( " U s e r s " , # t a b l e n a m e e x p r e s s i o n _ a t t r i b u t e _ n a m e s : [ a g e : " # a g e " ] e x p r e s s i o n _ a t t r i b u t e _ v a l u e s : [ a g e : 2 3 ] , c o n d i t i o n _ e x p r e s s i o n : " A g e = # a g e " ) | > E x A w s . r e q u e s t | > E n u m . m a p ( f n ( i t e m ) - > d e c o d e ( i t e m , m o d e l ) e n d ) Surge S u r g e . Q u e r y . q u e r y ( w h e r e : [ " # a g e = ? " , 2 3 ] , f o r : T e s t . U s e r ) 16
o . q u e r y ( " U s e r s " , # t a b l e n a m e e x p r e s s i o n _ a t t r i b u t e _ n a m e s : [ a g e : " # a g e " , a d m i n : " # a d m i n " ] , e x p r e s s i o n _ a t t r i b u t e _ v a l u e s : [ a g e : 2 3 , a d m i n : t r u e ] , c o n d i t i o n _ e x p r e s s i o n : " A g e = # a g e " , F i l t e r E x p r e s s i o n : " A d m i n = # a d m i n " ) | > E x A w s . r e q u e s t | > E n u m . m a p ( f n ( i t e m ) - > d e c o d e ( i t e m , m o d e l ) e n d ) Surge S u r g e . Q u e r y . q u e r y ( w h e r e : [ " # a g e = ? " , 2 3 ] , f o r : T e s t . U s e r 、 f i l t e r : [ " # a d m i n = ? " , t r u e ] ) 17