NoSQL рдЗрдВрдЬреЗрдХреНрд╢рди рд╡рд░реНрдгрдорд╛рд▓рд╛

SQL рдЗрдВрдЬреЗрдХреНрд╢рди рд╣реИрдВ! рдХреНрдпрд╛ NoSQL рдЗрдВрдЬреЗрдХреНрд╢рди рд╕рдВрднрд╡ рд╣реИрдВ? рд╣рд╛рдБ! Redis, MongoDB, рдореЗрдордХрд╛рд╕реНрдЯреЗрдб - рдпреЗ рд╕рднреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ DBMS рдХреА рд╢реНрд░реЗрдгреА рдХреЗ рд╣реИрдВ, рдЬреЛ рд▓реЛрдХрдкреНрд░рд┐рдп MySQL, Oracle рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ MSSQL рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЗрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд░реБрдЪрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрд╛рдлреА рдмрдврд╝ рдЧрдИ рд╣реИ, рд╕рднреА рдзрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╣реИрдХрд░реНрд╕ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдЕрддреАрдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред




NoSQL рдХреНрдпрд╛ рд╣реИ?


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╕рдВрдмрдВрдзрдкрд░рдХ рдореЙрдбрд▓ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЗрдХрд╛рдЗрдпрд╛рдВ (рдЯреЗрдмрд▓), рдкрд░рд╕реНрдкрд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдбреЗрдЯрд╛ SQL, рд╕рдВрд░рдЪрд┐рдд рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рд╕рдВрдмрдВрдзрдкрд░рдХ DBMS рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рджреВрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛ рд╣реИ: MySQL, Oracle, Microsoft SQL Serverред рдЕрдиреНрдп рд╕рднреА DBMS, рдЬрд┐рдирдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╢рд╛рд╕реНрддреНрд░реАрдп рд╕рдВрдмрдВрдз рдореЙрдбрд▓ рд╕реЗ рднрд┐рдиреНрди рд╣реИ, рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ NoSQL рд╕рдорд╛рдзрд╛рди рдХреЗ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

NoSQL-DBMS рдФрд░ рдЙрдирдХреЗ SQL рдЙрдиреНрдореБрдЦ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдПрдХрд▓, рдПрдХреАрдХреГрдд рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреА рдХрдореА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MongoDB BSON рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддрд╛ рд╣реИ, eXist XQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ Sonic GraphDB рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдХреА рддрд░рд╣ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛, GraphQL рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред NoSQL-DBMS рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣рд░ рджрд┐рди рдмрдврд╝ рд░рд╣реА рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдФрд░ рдореБрдЭреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИред рдмрд╣реБрдд рдЬрд▓реНрдж, рд╕рдЪрдореБрдЪ рдХрд▓, рдЖрдкрдХреЛ рдПрд╕рдХреНрдпреВрдПрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреА рддрд▓рд╛рд╢ рдирд╣реАрдВ рдХрд░рдиреА рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ NoSQL рдЗрдВрдЬреЗрдХреНрд╢рдиред рд╣рдо рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдХреНрдпрд╛ NoSQL DBMSs рдЗрддрдиреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ?


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

NoSQL рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдореЗрдВ рддреАрди рд╕реНрддрд░ рд╣реЛрддреЗ рд╣реИрдВ:

рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдкрд░ рд╣рдорд▓рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдЗрдП рд╕рдмрд╕реЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЬреЛ рдХрд┐ рд╕реАрдзреЗ рдбреАрдмреАрдПрдордПрд╕ рд╕реЗ рд╣реИред рдХрд┐рд╕реА рднреА рдЖрд╡реЗрджрди рдХреА рддрд░рд╣, рдбреАрдмреАрдПрдордПрд╕ рдХреЛ рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣рдорд▓реЛрдВ рдХреА рдЖрд╢рдВрдХрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрд╛ рдПрдХ рдХрдордЬреЛрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдпреЛрдЬрдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрд┐рд╕ рд╕рдореБрджрд╛рдп рдиреЗ рдЙрддреНрдкрд╛рдж рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХрдВрдкрдиреА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЦреБрдж рдХреЛ рдмрдирд╛рдпрд╛ рд╣реИ, рд╡реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЦреЛрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд▓рд╛рдн рд╣реИ: рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдХреБрдВрдЬреА рд╣реЛрдЧреА! рдЕрдЧрд▓рд╛ рд╕реНрддрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ NoSQL DBMS рдореЗрдВ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдПрдХ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдпрдмреНрд░реЗрд░реА рдореЗрдВ рднреЗрджреНрдпрддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реАрдзреЗ DBMS рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдХреЗрд╡рд▓ рдЙрд╕ рднреЗрджреНрдпрддрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдорд┐рдд рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рддреЛ рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд╕рдВрд╡рд╛рдж рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рд╕рддреНрд░ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╢реАрд░реНрд╖ рд╕реНрддрд░ рд╡рд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╣реИрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЙрди рдЬрдЧрд╣реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛, рдФрд░ рдЗрд╕рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдкрдХреЛ SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдЙрд╕реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХреЛрдб рдФрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ, рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░ рдЖрдкрдХреЛ JSON, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рддреЛ, рдпрд╣ рдПрдХ рд╣реИрдХ рдХреЗ рд▓рд┐рдП рд╕рдордп рд╣реИ! рдЖрдЬ рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп MongoDB рд╣реЛрдЧрд╛ - рд╕рдмрд╕реЗ рдЖрдо NoSQL DBMSs рдореЗрдВ рд╕реЗ рдПрдХред

MongoDB рдореЗрдВ NoSQL рдЗрдВрдЬреЗрдХреНрд╢рди


рд╣рдо рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрдХ рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ (рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ README.RU.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ)ред рдпрджрд┐ рд╕реНрдерд╛рдкрдирд╛ рд╕рдлрд▓ рд╣реИ, рддреЛ рдЖрд╡реЗрджрди http://127.0.0.1 {1337 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЦреНрдп рд╣рдорд▓реЛрдВ рдкрд░ рдЖрдЬ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА:

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


MongoDB рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕

рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ


рдХрдИ рдЕрдиреНрдп NoSQL DBMSs рдХреА рддрд░рд╣ MongoDB, рдЖрдкрдХреЛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЦрддрд░рдирд╛рдХ рдЙрдкрд╛рдп рдЬреЛ рдЕрдиреБрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред
MongoDB рдирд┐рдпрдорд┐рдд рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ $ рд░реЗрдЧреЗрдХреНрд╕ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╡реЗрд░реА "рдореБрдЭреЗ рдЙрди рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓реМрдЯрд╛рдПрдЧреА, рдЬрд┐рдирдХрд╛ рд▓реЙрдЧрд┐рди" ro "рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

db.users.find({ login: { $regex: "^ro" } }) 

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


рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреГрд╖реНрда

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдкреГрд╖реНрда рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред Lib рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ mongodb.js рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдпрд╣ MongoDbController рдХреНрд▓рд╛рд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЕрдм рд╣рдо regexp рд╡рд┐рдзрд┐ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:

 var regexpPwd = new RegExp("^" + password, "i"); var loginParam = { login: login, password: regexpPwd }; 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдкрд╛рд╕рд╡рд░реНрдб рдЪрд░ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдкреВрд░реА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдмрдЬрд╛рдп рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП [\ s \ S] *ред рдирддреАрдЬрддрди, MongoDB рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛: "db.users.findOne ({рд▓реЙрдЧрд┐рди: 'рд░реВрдЯ', рдкрд╛рд╕рд╡рд░реНрдб: / ^ [\ s \ S] * / i})", рдФрд░ рдЖрдк рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдордЬреЛрд░ рд╕рд╛рдЗрдЯ рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВрдЧреЗ (рдпрд╣) рддрдХрдиреАрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдПрд╕рдХреНрдпреВрдПрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди "1 'рдпрд╛ 1 = 1 -" рдХреЗ рд╕рдорд╛рди рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рдорд▓реЗ рд╕реЗ рдЦреБрдж рдХреЛ рдмрдЪрд╛рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрд╢рд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИ - рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ, рдпрд╛ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ, рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗред рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реЗ, рдЬрдм рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВ рддреЛ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рдХреНрд╡реЗрд░реА рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 db.users.findOne({ login: 'root', password: 'p@ssw0rd' }) 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рддреЗрдЬ рднреА рд╣реИред

рдЬреИрд╕рди рдЗрдВрдЬреЗрдХреНрд╢рди


рд╣рд╛рдБ, MongoDB SQL рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди DBMS рдПрдХ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред MongoDB рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ SQL рдХреЗ рдмрдЬрд╛рдп рд▓реЛрдХрдкреНрд░рд┐рдп JSON рдЯреЗрдХреНрд╕реНрдЯ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреНрд░рд╛рд░реВрдк (BSON) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдВрдЬреЗрдХреНрд╢рди рд╣рдорд▓реЛрдВ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рдорд▓реЛрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ JSON рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреЛ, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ "JSON рдЗрдВрдЬреЗрдХреНрд╢рди" рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╖реЗрддреНрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЖрдЗрдП рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВред рдпрд╣ MongoDbController рд╡рд░реНрдЧ рдХреЗ рдЬреЛрдВрд╕-рдЗрдВрдЬреЗрдХреНрд╢рди рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ:

 var loginParam = eval("({ login: '" + login + "', password: '" + password + "' })"); 

рдЙрдкрд░реНрдпреБрдХреНрдд рдХреЛрдб рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ (MongoDB рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз) рдХреЗ рдкрд╛рдареНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реЛрддрд╛ рд╣реИред рдХреЛрдб рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдХрдордЬреЛрд░ рдЬрдЧрд╣ рд╣реИ - рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдХреНрд╡реЗрд░реА рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо "рд░реВрдЯ '}) //" (рдкрд╛рд╕рд╡рд░реНрдб рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ "рд▓реЙрдЧрд┐рди" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдмрдзрд╛рдИ рд╣реЛ, рдЖрдк рдлрд┐рд░ рд╕реЗ рд▓реЙрдЧ рдЗрди рд╣реИрдВ! рдпрд╣ рдХреИрд╕реЗ рд╣реБрдЖ? рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЖрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо "рд░реВрдЯ '}) //" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдирд┐рдореНрди рдЪрд╛рд▓ eval рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣реБрдИ:

 //  ({ login: 'root'})//', password: '' }) //  db.users.findOne({ login: 'root' }) 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рднреА рдЦрддрд░рдирд╛рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдк рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо "'+ process.execPath}) //" рдлрд╝реЙрд░реНрдо рдХреА рдПрдХ рдХреНрд╡реЗрд░реА рддреИрдпрд╛рд░ рдХрд░реЗрдЧрд╛

 db.users.findOne({ login: 'C:\\node.exe' }) 

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрд╢рди рдпрд╛ рдмрд╕ SSJI рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдРрд╕реЗ рд╣рдорд▓реЛрдВ рд╕реЗ рдЦреБрдж рдХреЛ рдХреИрд╕реЗ рдмрдЪрд╛рдПрдВ?
  1. рдмрд╛рд╣рд░реА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧрд┐рди рдХреЛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "^ [a-zA-Z] + $" рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рднреА eval рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред JSON.parse рдлрд╝рдВрдХреНрд╢рди Node.js рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреЛ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИред



рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕рдлрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдмрд╛рдХреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреЛрдбрд╝рддреЛрдбрд╝


рдЗрдВрдЯрд░рдиреЗрдЯ рдФрд░ рд╕реЗрд╡рд╛-рдЙрдиреНрдореБрдЦ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ (SOA) рдХреЗ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХрд╛рд░рдг, REST рд╕рдорд╛рдзрд╛рди рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреАрдмреАрдПрдордПрд╕ рдирд╡реАрдирддрдо рдЙрджреНрдпреЛрдЧ рдХреЗ рд░реБрдЭрд╛рдиреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдВ рдпрд╛ рддреЛ рд╕реНрд╡рдпрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИрдВ рдпрд╛ RESTful рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред MongoDB рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИ: рдЗрд╕ DBMS рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг REST рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд░реАрдб-рдУрдирд▓реА рдореЛрдб рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрд▓реАрдкреА рдореЛрдВрдЧреЛрд╕реЗ рдирд╛рдордХ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рдкреВрд░реНрдг рд░реАрд╕реНрдЯ рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ MongoDB рдореЗрдВ рдирд┐рд░реНрдорд┐рдд REST рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред DBMS рд╕рд░реНрд╡рд░ рдХреЛ "--rest" рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред REST рд╕реЗрд╡рд╛ http://127.0.0.1:28017/ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╡реЗрдм-рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ DBMS рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ:

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ REST рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдлрд╝реЙрд░реНрдо рдХреЗ URL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

http://127.0.0.1:28017/_//?filter_=

рд╣рдорд╛рд░реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреЗрдЬ "рдореИрдирд┐рдкреБрд▓реЗрд╢рди рд╡рд┐рде рдП рдЖрд░рдИрдПрд╕рдЯреА рдЗрдВрдЯрд░рдлреЗрд╕" рдкрд░, рдпреВрдЬрд░ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдХреЛ рдореЛрдВрдЧреЛрдбреАрдмреА рд░реАрд╕реНрдЯ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ MongoDbController рд╡рд░реНрдЧ рдХреЗ рдмрд╛рдХреА рддрд░реАрдХреЗ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 var restQry = "/secure_nosql/users/?filter_login=" + login + "&filter_password=" + password; var hash = restQry.indexOf("#"); if (hash > -1) { restQry = restQry.substring(0, hash); } 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ "#" рд╡рд░реНрдг рдХреЗ рдмрд╛рдж рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдЕрдиреБрд░реЛрдз рдмрдирд╛рддрд╛ рд╣реИред рдЬрдм REST рдЕрдиреБрд░реЛрдз рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░реНрд╡рд░ рдкрд░ HTTP рдЕрдиреБрд░реЛрдз рдмрдирд╛рддреА рд╣реИ рдФрд░ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Secure_nosql рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: http://127.0.0.1:28017/secure_nosql/users/?filter_login=root&ililter_password=p@ssw0rdред рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЛрдб рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдЬреЛ "#" рдкреНрд░рддреАрдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк "рд░реВрдЯ #" рдирд╛рдо рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрди URL рдХреЗ рдЧрдарди рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ: http: // localhost: 28017 / safe_nosq / / users /? Filter_login = root # & filter_password =ред рдЗрд╕ рддрдереНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдХрд┐ filter_password рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЕрдиреБрд░реЛрдз http: // localhost: 28017 / Secure_nosql / users /? filter_login = root рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ REST рдЗрдВрдЯрд░рдлреЗрд╕ рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рдЕрдиреБрд░реЛрдз рдЬрд╛рд▓рд╕рд╛рдЬреА (CSRF) рдХреЗ рд▓рд┐рдП рднреА рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ:

 <img src="http://localhost:28017/secure_nosql/users/" /> 

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВ Restful рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рдЕрд╡рд╕рд░ рдЦреЛрд▓рддрд╛ рд╣реИред REST рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдлреЙрд░рдЧрд┐рд░реА рдХреЗ рд▓рд┐рдП рд░реЛрдмрд╕реНрдЯ рдбрд┐рдлреЗрдВрд╕ рд▓реЗрдЦ рдкрдврд╝реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрд░рдИрдПрд╕рдЯреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрд╢рди


рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреАрдмреАрдПрдордПрд╕ рдЖрдкрдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЖрдЗрдП Microsoft SQL рд╕рд░реНрд╡рд░ рдХреЛ рджреЗрдЦреЗрдВ, рдЬреЛ ANSI SQL рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯреА-рдПрд╕рдХреНрдпреВрдПрд▓ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдХрдореА рд╣реИ (рдпрд╣ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдореЗрдВ рд▓рд╛рдЧреВ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреА рдПрдХ рдмреЛрд▓реА рд╣реИ), рддреЛ рдЖрдк рд╕реА # рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп .NET-рд╕рдВрдЧрдд рднрд╛рд╖рд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
MongoDB рдореЗрдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣рд┐рдд рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдореГрджреНрдз рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рддрд░рдл, рдпрд╣ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рджреВрд╕рд░реА рдУрд░, рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдзрд┐рдХ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рддрд╛ рд╣реИред
рдореИрдВ MongoDB рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
  1. $ рдЬрд╣рд╛рдВ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢реНрди ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╡реЗрд░реА db.orders.find ({$ рдЬрд╣рд╛рдВ: "this.amount> 3"}) рдЖрдкрдХреЛ рддреАрди рд╕реЗ рдЕрдзрд┐рдХ рдЖрдЗрдЯрдореЛрдВ рдХреЗ рд╕рд╛рде рдЖрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рдПрдЧрд╛ред
  2. Db.eval рдЯреАрдо ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, db.eval ("рдлрд╝рдВрдХреНрд╢рди (x) {рд░рд┐рдЯрд░реНрди x * x;}", 2) рдЪрд╛рд░ рд╡рд╛рдкрд╕ рдЖрдПрдВрдЧреЗред
  3. рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп ред MongoDB рдЖрдкрдХреЛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдгрд╛рд▓реА рд╕рдВрдЧреНрд░рд╣ system.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирдпрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдлреВ (x) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

      db.system.js.save( { _id: "foo", value: function (x) { return x * x; }}) 

    рдЕрдм рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: db.eval ("рдлреВ (2)")ред
  4. рдирдХреНрд╢рд╛ / рдХрдо рдХрд░реЗрдВ ред рдореИрдк / рд░рд┐рдбреНрдпреВрд╕, Google рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдврд╛рдВрдЪрд╛ рд╣реИ рдЬреЛ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рджреЛ рдСрдкрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдорд╛рдирдЪрд┐рддреНрд░, рдбреЗрдЯрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред
    MongoDB рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдирдХреНрд╢рд╛ рдЪрд▓рд╛рдиреЗ / рд╕рдВрдЪрд╛рд▓рди рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред DBMS рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдФрд░ рдПрдХрддреНрд░реАрдХрд░рдг рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддрд╛ рд╣реИ; рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреЗрд╡рд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрдорд╛рдВрдб рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА MongoDB рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ $ $ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрд╢рди рд╣реИ, рдЬрд╣рд╛рдВ db.eval рдХрдорд╛рдВрдб рдореЗрдВ рдПрдХ рд╕рдорд╛рди рднреЗрджреНрдпрддрд╛ рд╣реИред
рдЖрдЗрдП $ рдЙрд╕ рдХрдерди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦреЛрд▓реЗрдВ рдФрд░ "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрд╢рди" рдореЗрдиреВ рдореЗрдВ рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдкреГрд╖реНрда рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг ssji- рдЬрд╣рд╛рдВ MongoDbController рд╡рд░реНрдЧ рдХреА рд╡рд┐рдзрд┐ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 var js = "this.login === '" + login + "' && this.password === '" + password + "'"; var loginParam = { "$where" : js }; 

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

 { '$where': 'this.login === \'root\' //\' && this.password === \'\'' } 

"//" рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореА рдХреНрд╡реЗрд░реА "this.login === 'рд░реВрдЯ'" рд░реВрдк рд▓реЗрдЧреАред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЬрд┐рд╕ рд╕рдордп рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ "рд░реАрдб рдУрдирд▓реА" рдореЛрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд▓рд╛рд╡рд░ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХреЗрдЧрд╛ рдЬреЛ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреА рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╣рдорд▓рд╛ рдЕрд╕рдВрднрд╡ рд╣реИред "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрд╢рди - db.eval (...)" рдкреГрд╖реНрда рдЦреЛрд▓реЗрдВред рдЗрд╕ рд╕рдордп, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ eval рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ:

 var js = "function () { return db.users.findOne ({ login: '" + login + "', password: '" + password + "' }); }" db.eval(js); 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред Pen_test рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ pen_test рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЙрдЧрд┐рди рджрд░реНрдЬ рдХрд░реЗрдВ:

 '}), db.users.insert({login: 'pen_test', password: 'pen_test'}), 1 } // 

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


рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдЕрд╕реНрд╡реАрдХреГрдд рд╣реИ


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


рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ NoSQL рд╕рдореБрджрд╛рдп рдХреЗ рд╡рд░реНрддрдорд╛рди рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЛ рдХреИрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдиреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ NoSQL DBMSs рдЕрднреА рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИрдВ: рдирдП рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ DBMS рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ NoSQL рд╕рдорд╛рдзрд╛рди рдЕрддреНрдпрдзрд┐рдХ рднрд░реА рд╣реБрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрдЧрд╛ред рджреВрд╕рд░реЗ, рдЖрдзреБрдирд┐рдХ NoSQL-DBMS рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрддреА рд╣реИред рдпрджрд┐ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рд╣реИ - рдПрд╕рдХреНрдпреВрдПрд▓, рддреЛ "рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ рджреБрдирд┐рдпрд╛" рдореЗрдВ рд╣рд░ рдХреЛрдИ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╣ рдЪрд╛рд╣рддрд╛ рд╣реИ: рдЬреЗрдПрд╕рдПрди, рдПрдХреНрд╕рд╡рд╛рдИрдХреЗ, рдЖрд░рдИрдПрд╕рдЯреА рдЗрдВрдЯрд░рдлреЗрд╕ред рддрджрдиреБрд╕рд╛рд░, рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВред рдпрджрд┐ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдПрд╕рдХреНрдпреВрдПрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВ (рдЙрд╕реА рд╕рдордп рдЖрдк рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рдЬреНрдЮрд╛рди рдХреЛ MySQL рдореЗрдВ рдФрд░ рдУрд░реЗрдХрд▓ рдпрд╛ SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рддреЛ рдЧреИрд░-рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХреЗ DBMS рдореЗрдВ рдХрд┐рд╕ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рд╣реИрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MongoDB рдореЗрдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ)ред рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╣реИред

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


NoSQL FAQ


рдкреНрд░рд╢реНрди: NoSQL рд╢рдмреНрдж рдХреА рдЙрддреНрдкрддреНрддрд┐ рдХреНрдпрд╛ рд╣реИ?
A: NoSQL рдХрд╛ рдЕрдиреБрд╡рд╛рдж тАЬNo SQLтАЭ (No SQL рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ) рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди тАЬNot SQLтАЭ рдХреЗ рд░реВрдк рдореЗрдВ (рдХреЗрд╡рд▓ SQL рдирд╣реАрдВ)ред рдпрд╣ рд╢рдмреНрдж 1998 рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реБрдЖ: рдпрд╣реА рдХрд╛рд░реНрд▓реЛ рд╕реНрдЯреНрд░реЛрдЬрд╝реА рдиреЗ рдЕрдкрдиреЗ рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдХрд╣рд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ 2009 рдореЗрдВ рдЕрдкрдирд╛ рдкреБрдирд░реНрдЬрдиреНрдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛, рдЬрдм рдПрд░рд┐рдХ рдЗрд╡рд╛рдВрд╕ рдиреЗ рдореБрдлреНрдд рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдПрдХ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреАрдмреАрдПрдордПрд╕ рдФрд░ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛ред рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдореНрдореЗрд▓рди рдерд╛ рдЬрд┐рд╕рдиреЗ NoSQL рд╕рдорд╛рдзрд╛рди рдмреВрдо рдХреЗ рд▓рд┐рдП рдиреАрдВрд╡ рд░рдЦреАред

рдкреНрд░рд╢реНрди: MongoDB рдХреНрдпрд╛ рд╣реИ?
A: MongoDB рдЕрдХреНрдЯреВрдмрд░ 2007 рд╕реЗ 10gen рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рдмрдВрдзрди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд┐рд╕реНрдЯрдо рд╣реИред рдкрд╣рд▓рд╛ MongoDB рд░рд┐рд▓реАрдЬрд╝ рдлрд░рд╡рд░реА 2009 рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред DBMS рдЕрддреНрдпрдзрд┐рдХ рднрд░реА рд╣реБрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рд╣реИред рдЗрд╕рдХреЗ рдореБрдЦреНрдп рд▓рд╛рднреЛрдВ рдореЗрдВ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди, рдЙрддреНрдХреГрд╖реНрдЯ рдорд╛рдкрдиреАрдпрддрд╛, рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╡реНрдпрд╛рдкрдХ рд╕рдореБрджрд╛рдп рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, MongoDB рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рдбрд┐рдЬреНрдиреА, рдПрд╕рдПрдкреА, рдлреЛрд░реНрдмреНрд╕ рдФрд░ рдЕрдиреНрдп рдЬреИрд╕реА рд╡рд┐рд╢реНрд╡ рдкреНрд░рд╕рд┐рджреНрдз рдХрдВрдкрдирд┐рдпрд╛рдВ рд╣реИрдВред

рдХреНрдпреВ: рдХреНрдпреЛрдВ NoSQL?
A: рдЪрд▓рд┐рдП рдореБрдЦреНрдп рд▓рд╛рдн рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрдкрдиреЗ рд░рд┐рд▓реЗрд╢рдирд▓ рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рдКрдкрд░ рд╣реИред
  1. рдЙрддреНрдкрд╛рджрдХрддрд╛ : рдЕрдзрд┐рдХрд╛рдВрд╢ NoSQL рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рд╕рдорд░реНрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред MongoDB рдЖрдкрдХреЛ рд▓рдЧрднрдЧ 20,000 рдЖрд╡реЗрд╖рдг рдФрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 4800 рдирдореВрдиреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  2. рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдЖрд╕рд╛рди рд╡рд┐рдиреНрдпрд╛рд╕ ред MongoDB рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдПрдХ рд╣реА рдУрд░реЗрдХрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
  3. рдмрд╣реБрдд рд╕рд╛рд░реЗ "рдЧреБрдбреАрдЬрд╝" рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MongoDB рдиреЗ рдорд╛рдирдЪрд┐рддреНрд░ / рдХрдЯреМрддреА рдФрд░ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рд╣реИред
  4. рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА ред рдпрд╣ NoSQL-DBMS рдХреЗ рдореБрдЦреНрдп рдЯреНрд░рдореНрдк рдХрд╛рд░реНрдб рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдЧрдд рдмрдЪрдд рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рд░реИрдо рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЛрдбрд╝реА рдЬреЛрдбрд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рд╕реНрддрд╛ рд╕рд░реНрд╡рд░ рдЦрд░реАрджрдирд╛ рд╕рд╕реНрддрд╛ рд╣реИред
  5. рд╡реЗ рд╕рд╕реНрддреЗ рд╣реИрдВ! рдЕрдзрд┐рдХрд╛рдВрд╢ NoSQL рд╕рдорд╛рдзрд╛рди рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдмрдбрд╝реЗ рдФрд░ рдХрд░реАрдмреА рд╕рдореБрджрд╛рдп рдиреЗ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдИ рдЧрдИ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рддреИрдпрд╛рд░ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдЖрдк рд╕реНрд╡рдпрдВ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЦрд░реНрдЪреЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрдЪрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ DBMS рд╕рдВрдмрдВрдзрдкрд░рдХ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХрд░реНрдордЪрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдкреНрд░рд╢реНрди: NoSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреМрди рдХрд░рддрд╛ рд╣реИ?
A: рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, NoSQL DBMSs рдореЗрдВ рдХрдИ рдмреЗрд╢реБрдорд╛рд░ рдлрд╛рдпрджреЗ рд╣реИрдВред рдЖрдЗрдП рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреМрди рдХрд░рддрд╛ рд╣реИ:


рдЫрд╡рд┐
рд╣реИрдХрд░ рдкрддреНрд░рд┐рдХрд╛, рдлрд░рд╡рд░реА (02) 157
рдЗрд▓реНрдпрд╛ рд╡рд░реНрдмрд┐рдЯрд╕реНрдХреА ( blog.chivavas.org )

рд╣реИрдХрд░ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ


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


All Articles