GlobalsDB рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рднрд╛рдЧ реи

рднрд╛рдЧ 1

рд╣рдо GlobalsDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 4 рдкреНрд░рдХрд╛рд░ рдХреЗ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВ

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕реЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЖрдЗрдП рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рд╡реИрд╢реНрд╡рд┐рдХ рддрддреНрд╡ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп, 3 рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
  • рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдо
  • рдЕрдиреБрдХреНрд░рдорд┐рдд (рд╢реВрдиреНрдп, рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ)ред рд╡реЗ рдкрд╛рдареНрдп рдпрд╛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
  • рдореВрд▓реНрдп (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реИрд╢реНрд╡рд┐рдХ рддрддреНрд╡ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ)ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдкрд╛рдард╛рддреНрдордХ рдпрд╛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ

рдЗрди рддреАрди рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдХреНрд╕рд░ рдПрди-рдПрд░реА рд░рд┐рд▓реЗрд╢рдирд▓ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:

globalName[subscript1, subscript2, ..subscriptN] = value 

рдирд╛рдо, рд╕реВрдЪрдХрд╛рдВрдХ рдФрд░ рдореВрд▓реНрдп рдХреЗ рдЗрд╕ рд╕рдВрдпреЛрдЬрди рдХреЛ рдЧреНрд▓реЛрдмрд▓ рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рднрдВрдбрд╛рд░рдг рдЗрдХрд╛рдИ рд╣реИред рд╡реИрд╢реНрд╡рд┐рдХ рдореЗрдВ рдЗрд╕рдХреЗ рдХрдИ рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрдИ рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╣реЛрддреЗ рд╣реИрдВред

рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдкрддреНрддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдПрдХрд▓ рд╡реИрд╢реНрд╡рд┐рдХ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдиреЛрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 myGlobal["a"] = 123 myGlobal["b", "c1"] = "foo" myGlobal["b", "c2"] = "foo2" myGlobal["d", "e1", "f1"] = "bar1" myGlobal["d", "e1", "f2"] = "bar2" myGlobal["d", "e2", "f1"] = "bar1" myGlobal["d", "e2", "f2"] = "bar2" myGlobal["d", "e2", "f3"] = "bar3" 

рдЕрдВрддрддрдГ, рдПрдХ рдЕрдХреЗрд▓рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд░рд▓ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдкреЗрдбрд╝ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рд╡реИрд╢реНрд╡рд┐рдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╡реГрдХреНрд╖ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:



рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, GlobalsDB рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡реЛрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЫрд┐рдкреЗ рд╣реБрдП рд▓рд┐рдВрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЖрд╡реЗрджрди рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдФрд░ рдмрдирд╛рдП рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕реНрдХреАрдорд╛ рдпрд╛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рдЖрд╡реЗрджрди рд╕реНрддрд░ рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рддрддреНрд╡ рд╕реЗрдЯ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рд╕рдЯреАрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рддреЛ, Node.JS API рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╣реА рд╡реИрд╢реНрд╡рд┐рдХ рддрддреНрд╡ рдХреЛ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ:

 var globalNode = { global:"myGlobal", subscripts: ["b","c3"], data: "Rob" }; db.set(globalNode, function(error,results) { // etc }); 

рдпрд╛ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ:

 var globalNode = { global:"myGlobal", subscripts: ["b","c3"], data: "Rob" }; db.set(globalNode); 

GlobalsDB рдХреА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдП рдмрд┐рдирд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░ OO рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЧреНрд▓реЛрдмрд╛рд▓реНрд╕рдмреАрдбреА рдХреЗ рдЕрджреНрд╡рд┐рддреАрдп рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╕рдВрднрд╡ рд╣реИ: рдпрд╣ NodeJS рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ RAM рдореЗрдВ рдПрдХ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдХрдИ рдЕрдиреНрдп NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдиреЗрдЯрд╡рд░реНрдХ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ), рдФрд░ рдЧрд╣рд░реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдЖрд╡рд╛рдЬ рджреА рдЧрдИ рдереА, рдпрд╣ рд░реИрдо рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рджреЗрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЧреБрдгреЛрдВ рдХрд╛ рдРрд╕рд╛ рд╕рдВрдпреЛрдЬрди рдирд╣реАрдВ рд╣реИред

рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЙрд╕реА Node.JS + GlobalsDB рдкрд░ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ JSON рдЖрдзрд╛рд░рд┐рдд API рд▓рд┐рдЦреЗрдВред

рдЙрдкрд░реЛрдХреНрдд рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд╣рдорд╛рд░реА рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдПрдХ рддрддреНрд╡ рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкреЗрдбрд╝ рдПрдХ рдирдпрд╛ рд░реВрдк рд▓реЗрдЧрд╛:



рдЕрдм, рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рдореВрд▓ рдЧреБрдгреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реБрдП, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдо рдЙрди рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

1) рдХреБрдВрдЬреА / рдореВрд▓реНрдп рднрдВрдбрд╛рд░рдг

рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдХреБрдВрдЬреА / рдорд╛рди рднрдВрдбрд╛рд░рдг рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╛рдердорд┐рдХ рд╣реИред рд╣рдо рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рддреЗ рд╣реИрдВ:

 keyValueStore[key] = value 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 telephone["211-555-9012"] = "James, George" telephone["617-555-1414"] = "Tweed, Rob" 

рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдкреЗрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:


рд╕рдм рдХреБрдЫ, рдХреБрдВрдЬреА / рдорд╛рди рдкреНрд░рдХрд╛рд░ рдХрд╛ рднрдВрдбрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреА рдорджрдж рд╕реЗ, рд╣рдо рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:

 Telephone[phoneNumber, "name"] = value Telephone[phoneNumber, "address"] = value 

рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдЙрджрд╛рд╣рд░рдг:

 telephone["211-555-9012", "name"] = "James, George" telephone["211-555-9012", "address"] = "5308, 12th Avenue, Brooklyn" telephone["617-555-1414", "name"] = "Tweed, Rob" telephone["617-555-1414", "address"] = "112 Beacon Street, Boston" 

рд╣рдордиреЗ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдкреЗрдбрд╝ рдмрдирд╛рдпрд╛ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рдЗрд╕ рдмрдврд╝реА рд╣реБрдИ рдХреБрдВрдЬреА / рдорд╛рди рд╕рдВрдЧреНрд░рд╣рдг рдореЗрдВ рдкрд╣рд▓реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ Node.JS API рдкрд░ рдХреЛрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 var gnode = { global: "telephone", subscripts: ["617-555-1414", "name"], data: "Tweed, Rob" }; db.set(gnode); 

NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдорддреМрд░ рдкрд░ рдЗрдВрдбреЗрдХреНрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рдпрджрд┐ рдЖрдкрдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдмрд╕ рдПрдХ рджреВрд╕рд░рд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рднреА рдХреНрд╖реЗрддреНрд░ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдореЗрдВ рдирд╛рдо рдХреНрд╖реЗрддреНрд░ рдкрд░ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЯреЗрд▓реАрдлреЛрди рдЧреНрд▓реЛрдмрд▓ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рдФрд░ рдЬреЛрдбрд╝рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкрдХреЗ рдКрдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред

рдирд╛рдо рдлрд╝реАрд▓реНрдб рдкрд░ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдЯреЗрд▓реАрдлрд╝реЛрди рдЧреНрд▓реЛрдмрд▓ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдирд╛рдорд╛рдВрдХ реирежрез the рдореЗрдВ рдПрдХ рддрддреНрд╡ рдмрдирд╛рдПрдВрдЧреЗред

 nameIndex[name, phoneNumber] = "" 

 nameIndex["James, George", "211-555-9012"] = "" nameIndex["Tweed, Rob", "617-555-1414"] = "" 

рд╡реИрд╢реНрд╡рд┐рдХ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╣рдо рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЖрд░реЗрдЦ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯреЗрд▓реАрдлреЛрди рдбреЗрдЯрд╛ рдФрд░ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛрддрд╛ рд╣реИред рдзрд░рд╛рд╢рд╛рдпреА рд░реЗрдЦрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдФрд░ рдореБрдЦреНрдп рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрдмрдВрдз рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИ:



рд╕реВрдЪрдХрд╛рдВрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╣рдореЗрдВ рдирд╛рдо рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдореБрдЦреНрдп рд╡реИрд╢реНрд╡рд┐рдХ рдлреЛрди рдирдВрдмрд░ рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреА рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рдВрдкрддреНрддрд┐ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рд░реВрдк рдореЗрдВ рддрддреНрд╡реЛрдВ рдХрд╛ рднрдВрдбрд╛рд░рдг рд╣реИ (рдиреАрдЪреЗ рдЖрд░реЗрдЦ рджреЗрдЦреЗрдВ), рд╕рд╣реЗрдЬреЗ рдЬрд╛рдиреЗ рдкрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдСрдкрд░реЗрд╢рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рдореВрд▓реНрдп рддрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП, рд╡реИрд╢реНрд╡рд┐рдХ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред

рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рд╕реЗ рдПрдХ рдЯреЗрд▓реАрдлреЛрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд╛рдордЗрдВрдбреЗрдХреНрд╕ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд () рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗ рдкрддреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рдпрд╛рддреНрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡рд┐рдзрд┐ рдХреНрд░рдо рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдпрд╣рд╛рдБ Node.js API рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 gnode = { global: "nameIndex", subscripts:["James, George"] }; var nextName = db.order(gnode).result; 

рдЗрд╕ рдХреЛрдб рдХреЛ рдЗрд╕ рд╡реИрд╢реНрд╡рд┐рдХ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ "рдЬреЗрдореНрд╕, рдЬреЙрд░реНрдЬ" рдХреЗ рд╕рд╛рде рддрддреНрд╡ рдХреЗ рдмрд╛рдж рддрддреНрд╡ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╣ рд╣реИ:

 nextName = "Tweed, Rob" 

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреНрд░реЙрд▓рд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП GlobalsDB рдмреЗрд╣рдж рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧреНрд▓реЛрдмрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдвреВрдВрдврдирд╛ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛрдЧрд╛ред

рдЕрд╕рд▓ рдореЗрдВ, рд╣рдордиреЗ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рдХреБрдВрдЬреА / рдорд╛рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд░рд▓ рднрдВрдбрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ред рд╡реИрд╕реЗ, рдбреЗрдЯрд╛ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рднрдВрдбрд╛рд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреНрд░рдердо рд╕реНрддрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдЬреЛрдбрд╝реЗрдВ:

 telephone["data", phoneNumber, "address"] = address telephone["data", phoneNumber, "name"] = name telephone["nameIndex", name, phoneNumber] = "" 

рдЪреВрдБрдХрд┐ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХрд╛ рднреМрддрд┐рдХ рдмреЛрдз рд╣рдореЗрдВ рдПрдХ рд╕рд╛рд░ рд╕реНрддрд░ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рд╣рдо рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рд╕рдВрд░рдЪрдирд╛рдПрдБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдХреБрдВрдЬреА / рдорд╛рди рднрдВрдбрд╛рд░рдг рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдореЗрдВ рдмрдврд╝рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢рд╛рд╕рди (рдмреИрдХрдЕрдк рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐, рдЕрдзрд┐рдХрддрдо рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдХрд╛рд░, рд╡рд┐рднрд┐рдиреНрди рд╢рд╛рд░реНрдж рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рддрд░рдг) рдХреЛ рдХреИрд╕реЗ рдПрдХ рдпрд╛ рдЕрдиреНрдп рд╕рдВрд░рдЪрдирд╛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддреА рд╣реИ рдпрд╛ рдмрд╛рдзрд╛ рдбрд╛рд▓рддреА рд╣реИред рдЗрди рдХрд╛рд░рдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЗрд╕ рдирд┐рд░реНрдгрдп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрд╛ рдХрдИ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдмрдирд╛рдП рдЬрд╛рдПрдВред

рдЕрдиреНрдп рднрдВрдбрд╛рд░рдг рдкреНрд░рдХрд╛рд░ рдХреБрдВрдЬреА / рдореВрд▓реНрдп

рдпрджрд┐ рд╣рдо Redis рдЬреИрд╕реЗ рдХреБрдВрдЬреА / рдореВрд▓реНрдп-рднрдВрдбрд╛рд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрди рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕реВрдЪрд┐рдпреЛрдВ

рд░реЗрдбрд┐рд╕ рдореЗрдВ рд╕реВрдЪрд┐рдпрд╛рдБ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдЖрдк рдПрдХ рд╕реВрдЪреА рдореЗрдВ рдорд╛рди рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕реВрдЪреА рд╕реЗ рдорд╛рди рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред

рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдРрд╕реА рд╕реВрдЪреА рдХрд╛ рдореЙрдбрд▓ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 list[listName, "firstNode"] = nodeNo list[listName, "lastNode"] = nodeNo list[listName, "node", nodeNo, "value"] = value list[listName, "node", nodeNo, "nextNode"] = nextNodeNo list[listName, "node", nodeNo, "previousNode"] = prevNodeNo 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА, рдЬрд┐рд╕реЗ myList рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдорд╛рдиреЛрдВ рдХрд╛ рдХреНрд░рдо рд╣реИ:
  • рд▓реВрдЯрдирд╛
  • рдЬреЙрд░реНрдЬ
  • рдЬреЙрди

рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 list["myList", "firstNode"] = 5 list["myList", "lastNode"] = 2 list["myList", "nodeCounter"] = 5 list["myList", "node", 2, "previousNode"] = 4 list["myList", "node", 2, "value"] = "John" list["myList", "node", 4, "nextNode"] = 2 list["myList", "node", 4, "previousNode"] = 5 list["myList", "node", 4, "value"] = "George" list["myList", "node", 5, "nextNode"] = 4 list["myList", "node", 5, "value"] = "Rob" 

рдпрд╛ рд░реЗрдЦрд╛рдВрдХрди:


рдЗрд╕ рдЖрдХреГрддрд┐ рдореЗрдВ, рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреА рджреБрд░реНрд▓рдн рдкреНрд░рдХреГрддрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рд╕реВрдЪреА рдЖрдЗрдЯрдо рдирдВрдмрд░ рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИред рддрддреНрд╡ 5 рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдЕрдЧрд▓реА рдиреЛрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдЧрд▓реА рд╕реВрдЪреА рддрддреНрд╡ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рдФрд░ рдкрд┐рдЫрд▓реА рд╕реВрдЪреА рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗрдХреЛрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИред

4 рдирдВрдмрд░ рдкрд░ рд╕реВрдЪреА рдХреЗ рдордзреНрдп рддрддреНрд╡ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдФрд░ рдмрд╛рдж рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдЬреЛ рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ (рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╣рдЯрд╛рддрд╛ рд╣реИ, рд╣рдЯрд╛рддрд╛ рд╣реИ, рдЫреЛрдЯрд╛ рдХрд░рддрд╛ рд╣реИ) рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдХрдИ рддрддреНрд╡реЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:
  • рдкрд╣рд▓реЗ рдпрд╛ рдЕрдВрддрд┐рдо рдиреЛрдб рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ
  • рдЖрдЗрдЯрдо рдорд╛рди рдЬреЛрдбрд╝реЗрдВ рдпрд╛ рдирд┐рдХрд╛рд▓реЗрдВ
  • рд╕реВрдЪреА рд╕реЗ рдЖрдЗрдЯрдо рдбрд╛рд▓рдиреЗ рдпрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдФрд░ рдкрд┐рдЫрд▓реЗ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реВрдЪреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирдпрд╛ рдирд╛рдо "рдХреНрд░рд┐рд╕" рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрд╕ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕реВрдЪреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ:

 list["myList", "firstNode"] = 6 list["myList", "lastNode"] = 2 list["myList", "nodeCounter"] = 6 list["myList", "node", 2, "previousNode"] = 4 list["myList", "node", 2, "value"] = "John" list["myList", "node", 4, "nextNode"] = 2 list["myList", "node", 4, "previousNode"] = 5 list["myList", "node", 4, "value"] = "George" list["myList", "node", 5, "nextNode"] = 4 list["myList", "node", 5, "previousNode"] = 6 list["myList", "node", 5, "value"] = "Rob" list["myList", "node", 6, "nextNode"] = 5 list["myList", "node", 6, "value"] = "Chris" 

рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЪрд┐рддреНрд░рдордп рдЖрд░реЗрдЦ (рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):



рд╕реВрдЪреА рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рддрддреНрд╡ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЕрдЧрд▓реЗ рдиреЛрдб рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рддрддреНрд╡ рд╕реЗ рддрддреНрд╡ рддрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рддрдм рддрдХ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдЕрдЧрд▓реЗ рддрддреНрд╡ рдореЗрдВ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рди рдкрд╛ рд▓реЗрдВ:



рд╕реВрдЪреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рдХреНрд░реЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛, рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡реИрд╢реНрд╡рд┐рдХ рддрддреНрд╡ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 List["myList", "count"] = noOfNodes 

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕реВрдЪреА рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИред

рд╕реЗрдЯ (рд╕реЗрдЯ)

рд░реЗрдбрд┐рд╕ рдореЗрдВ рд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдПрдХ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реЗрдЯ рд╣реИред рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдореЙрдбрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 theSet[setName, elementValue] = "" 

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдЕрдиреБрдХреНрд░рдордг рд╡рд┐рдзрд┐ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕реЗрдЯ рдореЗрдВ рдПрдХ рддрддреНрд╡ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

 Set: theSet["mySet", "Rob"] = "" 

рдХрд┐рд╕реА рдЖрдЗрдЯрдо рдХреЛ рд╕реЗрдЯ рд╕реЗ рд╣рдЯрд╛рдирд╛:

 Kill: theSet["mySet", "Rob"] 

рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рддрддреНрд╡ рд╕реЗрдЯ рдореЗрдВ рд╣реИ, рд╣рдо рдбреЗрдЯрд╛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рддрддреНрд╡ рд╕реЗрдЯ рдореЗрдВ рд╣реИ, рддреЛ рдпрд╣ 1 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рддреЛ 0ред

 Data: theSet["mySet", "Rob"] тЖТ 1 Data: theSet["mySet", "Robxxx"] тЖТ 0 

Node.js API рдореЗрдВ рд╣рдо рдбреЗрдЯрд╛ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

 gnode = { global: "theset", subscripts: ["mySet", "Rob"] }; var exists = db.data(gnode).defined; 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЪрд░ рдореМрдЬреВрдж рд╣реИ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдо рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреНрд░рдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рддрддреНрд╡реЛрдВ рдХреЗ рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, Redis рдХреЗ рд╕реЗрдЯ рдФрд░ рд╕реЗрдЯ рдХреЛ рдореЙрдбрд▓рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рд╣реИрд╢ред

рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рд╣реИрд╢ рдХреЗ рд╕реЗрдЯ рдХреЛ рд╕реЗрдЯ рдХреА рддрд░рд╣ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдирдХреЗ рд╕рд╛рд░ рдореЗрдВ, рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 Hash[hashName, value] = "" 

2) рд╕рд╛рд░рдгреАрдмрджреНрдз (рдпрд╛ рд╕реНрддрдВрдн) рднрдВрдбрд╛рд░рдг

рддрд╛рд▓рд┐рдХрд╛ рдпрд╛ рд╕реНрддрдВрдн NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреИрд╕реЗ рдХрд┐ BigTable, Cassandra рдФрд░ Amazon SimpleDB рдЖрдкрдХреЛ рд╡рд┐рд░рд▓ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХреБрдЫ рдореЗрдВ рдорд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ, рдХреЙрд▓рдоред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рд┐рдВрдкрд▓рдбреАрдмреА рдПрдХ рдХреЙрд▓рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рди рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдлрд┐рд░, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдореЙрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рднрдВрдбрд╛рд░ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ:

 columnStore[columnName, rowId] = value 

рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдЙрджрд╛рд╣рд░рдг:

 user["dateOfBirth", 3] = "1987-01-23" user["email", 1] = "rob@foo.com" user["email", 2] = "george@foo.com" user["name", 1] = "Rob" user["name", 2] = "George" user["name", 3] = "John" user["state", 1] = "MA" user["state", 2] = "NY" user["telephone", 2] = "211-555-4121" 

рдЪрд╛рд░реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ:



рдлрд┐рд░, рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреА рджреБрд░реНрд▓рдн рдкреНрд░рдХреГрддрд┐ рдХрд╛рдо рдореЗрдВ рдЖрдИред рдЙрдкрд░реЛрдХреНрдд рд╡реИрд╢реНрд╡рд┐рдХ рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ:
рдирд╛рдордЯреЗрд▓реАрдлреЛрдирдИрдореЗрд▓dateOfBirthрд░рд╛рдЬреНрдп
1рд▓реВрдЯрдирд╛rob@foo.comрдПрдордП
2рдЬреЙрд░реНрдЬ211-555-4121george@foo.comрдиреНрдпреВрдпреЙрд░реНрдХ
3рдЬреЙрди1987/01/23

рдмреЗрд╢рдХ, рдЖрдк рдЗрд╕ рдореЙрдбрд▓ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрдВрдХреНрддрд┐ рдФрд░ рд╕реЗрд▓ рдорд╛рди рджреНрд╡рд╛рд░рд╛, рдЬрд┐рд╕реЗ рд╕реНрддрдВрднреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рд╕рдорд░реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 userIndex["byRow", rowId, columnName] = "" userIndex["byValue", value, columnName, rowId] = "" 

3) рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдЙрдиреНрдореБрдЦ рднрдВрдбрд╛рд░рдг

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдЙрдиреНрдореБрдЦ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреИрд╕реЗ рдХрд┐ CouchDB рдФрд░ MongoDB рдХрдИ рдкреНрд░рдореБрдЦ / рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдФрд░ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдЯреЛрд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред

рдЖрдорддреМрд░ рдкрд░, JSON рдпрд╛ JSON рдЬреИрд╕реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд "рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ" рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред GlobalsDB рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рдореИрдк рдХрд░рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 {key:"value"} 

рдпрд╣ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдореЙрдбрд▓рд┐рдВрдЧ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:

 Document["key"] = "value" 

GlobalsDB рдореЗрдВ рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 var json = { node: { global: "Document", subscripts: [] }, object: { key: "value" } }; db.update(json, 'object'); 

рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЗрд╕ рддрд░рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

 var json = db.retrieve({global: 'Document'},"object"); console.log("Document = " + JSON.stringify(json.object)); 

рдЖрдЗрдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓реЗрдВ:

 {this:{looks:{very:"cool"}}} 

рдЗрд╕реЗ рдирд┐рдореНрди рд╡реИрд╢реНрд╡рд┐рдХ рддрддреНрд╡ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 Document["this", "looks", "very"] = "cool" 

рдФрд░ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 var json = { node: { global: "Document", subscripts: [] }, object: { this: { looks: { very: "cool" } } } }; db.update(json, "object"); 

рд╕рд░рдгреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

 ["this","is","cool"] 

рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 document[1] = "this" document[2] = "is" document[3] = "cool" 

GlobalsDB рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдирд╣реАрдВ, рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рдбреЗрдЯрд╛ рдореИрдкрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╕рд░рдгреА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦреЗрдВрдЧреЗ:

 var json = { node: { global: "Document", subscripts: [] }, object: { 1: "this", 2: "is", 3: "cool" } }; db.update(json, "object"); 

рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

 var json = db.retrieve({global: "Document"}, "object"); console.log("Document = " + JSON.stringify(json.object)); Document = {"1":"this", "2":"is", "3":"cool"} 

рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИ:

 { "age": "26", "contact": { "address": { "city": "Boston", "street": "112 Beacon Street" }, "cell": "617-555-1761", "email": "rob@foo.com", "telephone": "617-555-1212" }, "knows": { "1": "George", "2": "John", "3": "Chris" }, "medications": { "1": { "dose": "5mg", "drug": "Zolmitripan" }, "2": { "dose": "500mg", "drug": "Paracetemol" } }, "name": "Rob", "sex": "Male" } 

рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

 person["age"] = 26 person["contact", "address", "city"] = "Boston" person["contact", "address", "street"] = "112 Beacon Street" person["contact", "cell"] = "617-555-1761" person["contact", "eMail"] = "rob@foo.com" person["contact", "telephone"] = "617-555-1212" person["knows", 1] = "George" person["knows", 2] = "John" person["knows", 3] = "Chris" person["medications", 1, "drug"] = "Zolmitripan" person["medications", 1, "dose"] = "5mg" person["medications", 2, "drug"] = "Paracetamol" person["medications", 2, "dose"] = "500mg" person["name"] = "Rob" person["sex"] = "Male" 

рдпрд╛ рд░реЗрдЦрд╛рдВрдХрди:



рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ GlobalsDB рдореЗрдВ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 var json = { node: { global: "person", subscripts: [] }, object: { name: "Rob", age: 26, knows: { 1: "George", 2: "John", 3: "Chris" }, medications: { 1: { drug: "Zolmitripan", dose: "5mg" }, 2: { drug: "Paracetemol", dose: "500mg" } }, contact: { email: "rob@foo.com", address: { street: "112 Beacon Street", city: "Boston" }, telephone: "617-555-1212", cell: "617-555-1761" }, sex: "Male" } }; db.update(json, "object"); 

рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

 var json = db.retrieve({global: "person"}, "object").object; 

4) рдЧреНрд░рд╛рдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕

No4 рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреИрд╕реЗ Neo4j рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЛрдбреНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рдЬрдЯрд┐рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рдХрдиреЗрдХреНрд╢рди (рддрдерд╛рдХрдерд┐рдд рдХрд┐рдирд╛рд░реЛрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЛрдбреНрд╕ рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдВрдЬреА / рдорд╛рди рдЬреЛрдбрд╝реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕рд╛рдорд╛рдЬрд┐рдХ рдЧреНрд░рд╛рдл рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИред рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:



рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рддреАрд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреВрд╕рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 person[personId, "knows", personId] = "" person[personId, "knows", personId, key) = value person[personId, "name"] = name 

рд░рд╛рдЬреНрдп рдХрд╛ рд╕рдордп "рдЬрд╛рдирддрд╛ рд╣реИ" рдХреА рдЧрдгрдирд╛ рд╕рдордп рд╕реНрдЯрд╛рдореНрдк рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 person[1, "knows", 2] = "" person[1, "knows", 2, "disclosure"] = "public" person[1, "knows", 2, "timestamp"] = "2008-08-16T12:23:01Z" person[1, "knows", 7] = "" person[1, "name"] = "Rob" person[2, "name"] = "John" person[7, "knows", 2] = "" person[7, "knows", 2, "disclosure"] = "public" person[7, "knows", 2, "timestamp"] = "2009-12-16T10:06:44Z" person[7, "name"] = "George" 

рдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдк рд╕реЗ (рд▓рд╛рд▓ рдмрд┐рдВрджреАрджрд╛рд░ рд░реЗрдЦрд╛рдПрдВ рдЗрд╕ рдореЙрдбрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ "рдкрддрд╛" рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИрдВ):



рдпрджрд┐ рд╣рдо рдПрдХ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореЙрдбрд▓ рдЙрдирдХреЗ рдмреАрдЪ рдиреЛрдбреНрд╕ рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░реЗрдЧрд╛ред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

 node[nodeType, nodeId] = "" node[nodeType, nodeId, attribute] = attributeValue edge[edgeType, fromNodeId, toNodeId] = "" edge[edgeType, fromNodeId, toNodeId, attribute] = attributeValue edgeReverse[edgeType, toNodeId, fromNodeId] = "" 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЧреЛрд▓рд╛рдХрд╛рд░ рдкреНрд░рдХреГрддрд┐ рдФрд░ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди рдмрд╣реБрдд рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╕ рдЬрдЯрд┐рд▓ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

5) рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдореЙрдбрд▓

рдЧреНрд▓реЛрдмрд▓ рдореЙрдбрд▓рд┐рдВрдЧ NoSQL рдбреЗрдЯрд╛ рдореЙрдбрд▓ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • XML DOM / Native XML рдбреЗрдЯрд╛рдмреЗрд╕ред GlobalsDB рд▓рдЧрд╛рддрд╛рд░ XML DOM рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдПрдХреНрд╕рдПрдордПрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдЧреНрд░рд╛рдлрд╝ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдиреЛрдбреНрд╕ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдлрд░реНрд╕реНрдЯ рдЪрд╛рдЗрд▓реНрдб, рд▓рд╛рд╕реНрдЯ рдЪрд╛рдЗрд▓реНрдб, рдиреЗрдХреНрд╕реНрдЯрдмреНрд▓рд┐рдВрдЧ, рдкреИрд░реЗрдВрдЯ, рдЖрджрд┐)ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ GlobalsDB рдХреЛ рдореВрд▓ XML рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред Node.js ewdDOM рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдПрдХ рд╣рд▓реНрдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред
  • рд╕рдВрдмрдВрдзрдкрд░рдХ рддрд╛рд▓рд┐рдпрд╛рдБред рдХрд╛рдВрдЪ рдХреЗ рдореЙрдбрд▓ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рд░рд┐рд▓реЗрд╢рдирд▓ рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдорд╛рдирдХ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╛рдиреА GlobalsDB рдХреЛ NoSQL рдЗрдВрдЬрди рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ Cach├й рдиреЗ NOSQL (рдпрд╛рдиреА рди рдХреЗрд╡рд▓ рдХреЗрд╡рд▓ SQL - рди рдХреЗрд╡рд▓ SQL) рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реИред
  • рдСрдмреНрдЬреЗрдХреНрдЯ рдбреАрдмреАред рдХреИрдЪ рдореЙрдбрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╕рдВрдмрдВрдзрдкрд░рдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдорд╛рдирдЪрд┐рддреНрд░рдг рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЕрдм рдЖрдк рд╕рдордЭ рдЧрдП рд╣реЛрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд╛рдиреЗ-рдорд╛рдиреЗ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╡рд┐рдкрд░реАрдд, GlobalsDB рдПрдХ рдХрдард┐рди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдХрдИ рдЧреБрдг рд╣реИрдВред рддреЛ GlobalsDB рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рднреА, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Redis, CouchDB, SimpleDB, Neo4j рдФрд░ Native XML рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ!

рдпрджрд┐ рдЖрдк Node.JS (рд╕рд╛рде рд╣реА .NET, рдЬрд╛рд╡рд╛) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ GlobalsDB рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ!

рдирд┐рд╖реНрдХрд░реНрд╖

рдмреЗрд╢рдХ, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рджрд┐рдП рдЧрдП рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддрд░реАрдХреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдореАрдХреНрд╖рд╛ рдиреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЪреАрд▓рд╛ рдЙрдкрдХрд░рдг рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рднрд┐рдиреНрди NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдореЙрдбрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЧреБрдкреНрдд рд╕реЙрд╕, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрджрд┐ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмреБрджреНрдзрд┐рдорд╛рди рдбрд┐рдЬрд╛рдЗрди рдирд┐рд░реНрдгрдп рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рджрд░реНрд╢рди рдЕрджреНрднреБрдд рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж
рдпрд╣ рд▓реЗрдЦ рд░реЙрдм рдЯреНрд╡реАрдб рдФрд░ рдЬреЙрд░реНрдЬ рдЬреЗрдореНрд╕ рджреНрд╡рд╛рд░рд╛ "рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдПрдВрдб рдЯреЗрд╕реНрдЯреЗрдб рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдиреЛрд╕реНрдХрд▓ рдбреЗрдЯрд╛рдмреЗрд╕" (2010) рдХрд╛ рдПрдХ рд▓реЗрдЦ рд╣реИред

Source: https://habr.com/ru/post/In185472/


All Articles