рдУрдкрди рд╡реЗрдмрд┐рдирд╛рд░ "MongoDB рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ"

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



рд╡реЗрдмрд┐рдирд╛рд░ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд╕рд┐рдЯреАрдореЛрдмрд┐рд▓ рдореЗрдВ рд╕рд░реНрд╡рд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рдкреНрд░рдореБрдЦ рдЗрд╡рд╛рди рд░реЗрдореЗрди рдиреЗ рдХрд┐рдпрд╛ рдерд╛ред


MongoDB рд╕реБрд╡рд┐рдзрд╛рдПрдБ


MongoDB рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдЙрдиреНрдореБрдЦ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬрд┐рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреАрдорд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕реЗ NoSQL рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ BSON (рдмрд╛рдЗрдирд░реА JSON) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╕реНрдХреЗрд▓, C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ SQL рд╕рдорд░реНрдерди рдирд╣реАрдВред

MongoDB рдореЗрдВ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ (C, C ++, C #, Go, Java, JavaScript, Perl, PHP, Python, Ruby, рдЖрджрд┐) рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИрдВред рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдФрд░ рд╕рдореБрджрд╛рдп рд╕рдорд░реНрдерд┐рдд рдбреНрд░рд╛рдЗрд╡рд░ рднреА рд╣реИрдВред

рдареАрдХ рд╣реИ, рдЖрдЗрдП рдЙрди рдореВрд▓ рдХрдорд╛рдВрдбреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рдбреЙрдХрдЯрд░ рдореЗрдВ рдореЛрдВрдЧреЛрдмреАрдбреА рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

docker run -it --rm -p 127.0.0.1:27017:27017 --name mongo-exp-project mongo docker exec -it mongo-exp-project mongo 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, MongoDB рдХреНрд▓рд╛рдЗрдВрдЯ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ :



рдЕрдм рдЖрдЗрдП рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рд▓рд┐рдЦреЗрдВ:

 print (тАЬHello world!тАЭ) 



рдЙрд╕рдХреЗ рдмрд╛рдж, рд▓реВрдк рдЪрд▓рд╛рдПрдВ :



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛, рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдирд┐рдпрдорд┐рдд JS рд╣реИ, рдФрд░ MongoDB рдПрдХ рдкреВрд░реНрдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╣реИ ред

MongoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ?


рдПрдХ рдХрд╣рд╛рдиреА рд╣реИ рдХрд┐ рд╕рд┐рд▓рд┐рдХреЙрди рд╡реИрд▓реА рдореЗрдВ рдФрд╕рдд рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд╣ рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬрд┐рд╕рдиреЗ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ "HTML for Dummies" рдкреБрд╕реНрддрдХ рдЦреЛрд▓реА рдереАред рд╡рд╣ рдХреМрди рд╕рд╛ рдвреЗрд░ рдЪреБрди рд▓реЗрдЧрд╛? рдЖрдкрдХреЛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЬрдм рд╡рд╣ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рддреЛ Node.js рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рднреА рд╣реИред рдпрд╣ рдмрд┐рдВрджреБ рд╕рдВрдЦреНрдпрд╛ 1 рд╣реИред

рджреВрд╕рд░реЗ, рд░реВрд╕ рдореЗрдВ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдкреАрдЯрд░ рдЬрд╝реИрддрд╕реЗрд╡ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рд╕реНрддреБрддрд┐ рд╣реИ ред рдЗрд╕рдореЗрдВ, рдкреАрдЯрд░ MySQL рдФрд░ MongoDB рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрдм рдФрд░ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред

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

MongoDB рдореЗрдВ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рд▓рд┐рдП, рддрдм:

  • рдХреБрд░реНрд╕рд┐рдпрд╛рдВ тАЛтАЛрдХреБрд░реНрд╕рд┐рдпрд╛рдВ тАЛтАЛ(рдпреЛрдЬрдирд╛рдПрдВ, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рд╕рдордЧреНрд░рддрд╛) рд╣реИрдВ;
  • MongoDB рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдРрд╕реА рдЪреАрдЬ рд╣реИ - рдпрд╣ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЗ рддрд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
  • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдХ рд▓рд╛рдЗрди рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИрдВред

рдбреЗрдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╕рд░рд▓ рдкреНрд░рд╢реНрди


рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 use learn 



рдЕрдм рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдХреА рдПрдХ рдЫреЛрдЯреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд░реЛрд░рд╛ рдирд╛рдо рдХрд╛ рдПрдХ рдЧреЗрдВрдбрд╛ рджреЗрдВ:

 db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450}) 

db рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, "рдореЛрдВрдЧрд╛" рд╣реА рд╣реИред рд╢рд╛рд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП, rs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

Db рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреНрдпрд╛ рдХрдорд╛рдВрдб рд╣реИ:



рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реА рдЯреАрдо рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрдВрд╕реЛрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ рдХрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдбрд╛рд▓реА рдЧрдИ рд╣реИ:



рд╢рдмреНрдж db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450}) unicorns db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450}) рдЕрд░реНрде рд╣реИ рдПрдХ рд╕рдВрдЧреНрд░рд╣ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рд╡рд░реНрдгрди рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ 'рдпреВрдирд┐рдХреЙрд░реНрди' рд▓рд┐рдЦрд╛ рд╣реИ, рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдорд┐рд▓рд╛ рд╣реИред

рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :

 db.getCollectionNames() 

рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдЗрддрдиреЗ рдкрд░ред рд╣рдо рдПрдХ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



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

 db.unicorns.find() 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣рд╛рдБ рд╣рдорд╛рд░рд╛ JSON рд╣реИ (рдПрдХ рдирд╛рдо, рд▓рд┐рдВрдЧ, рд╡рдЬрди, рд╡рд╕реНрддреБ рдХрд╛ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ):



рдЕрдм рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдХреБрдЫ рдФрд░ рдЧреЗрдВрдбрд╛ рдбрд╛рд▓реЗрдВ:

 db.unicorns.insert({name: 'Leto', gender: 'm', home: 'Arrakeen', worm: false}) db.unicorns.insert({name: 'Leto', gender: 'm', home: 'Arrakeen', worm: false}) 

рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХреНрдпрд╛ рд╣реБрдЖ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ: рдШрд░ рдФрд░ рдХреАрдбрд╝рд╛ , рдЬреЛ рдЕрд░реЛрд░рд╛ рдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИред

рдХреБрдЫ рдФрд░ рдЗрдХрд╛рдЗрдпрд╛рдВ рдЬреЛрдбрд╝реЗрдВ:

 db.unicorns.insertMany([{name: 'Horny', dob: new Date(1992,2,13,7,47), loves: ['carrot','papaya'], weight: 600, gender: 'm', vampires: 63}, {name: 'Aurora', dob: new Date(1991, 0, 24, 13, 0), loves: ['carrot', 'grape'], weight: 450, gender: 'f', vampires: 43}, {name: 'Unicrom', dob: new Date(1973, 1, 9, 22, 10), loves: ['energon', 'redbull'], weight: 984, gender: 'm', vampires: 182}, {name: 'Roooooodles', dob: new Date(1979, 7, 18, 18, 44), loves: ['apple'], weight: 575, gender: 'm', vampires: 99}]) 

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЪрд╛рд░ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд╛рд▓реЗ:



рдХреМрди рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд╕рдкреЛрд░реНрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ: рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдпрд╛ рдореЛрдВрдЧ рдореЗрдВ?

рдЙрддреНрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдореЛрдВрдЧ рдореЗрдВ, рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ KLADR рд░реВрд╕реА рд╕рдВрдШ рдореЗрдВ рдПрдХ рджрд░реНрдж рд╣реИред рдФрд░ рдореЛрдВрдЧрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрддреЛрдВ рдкрд░ рдкрдбрд╝рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдЬреАрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдФрд░ рдпрд╣ MongoDB рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдорд▓рд╛ рд╣реИ ред

рдЕрдзрд┐рдХ рдЧреЗрдВрдбрд╛ рдЬреЛрдбрд╝реЗрдВ:

 db.unicorns.insert({name: 'Solnara', dob: new Date(1985, 6, 4, 2, 1), loves:['apple', 'carrot', 'chocolate'], weight:550, gender:'f', vampires:80}); db.unicorns.insert({name:'Ayna', dob: new Date(1998, 2, 7, 8, 30), loves: ['strawberry', 'lemon'], weight: 733, gender: 'f', vampires: 40}); db.unicorns.insert({name:'Kenny', dob: new Date(1997, 6, 1, 10, 42), loves: ['grape', 'lemon'], weight: 690, gender: 'm', vampires: 39}); db.unicorns.insert({name: 'Raleigh', dob: new Date(2005, 4, 3, 0, 57), loves: ['apple', 'sugar'], weight: 421, gender: 'm', vampires: 2}); db.unicorns.insert({name: 'Leia', dob: new Date(2001, 9, 8, 14, 53), loves: ['apple', 'watermelon'], weight: 601, gender: 'f', vampires: 33}); db.unicorns.insert({name: 'Pilot', dob: new Date(1997, 2, 1, 5, 3), loves: ['apple', 'watermelon'], weight: 650, gender: 'm', vampires: 54}); db.unicorns.insert({name: 'Nimue', dob: new Date(1999, 11, 20, 16, 15), loves: ['grape', 'carrot'], weight: 540, gender: 'f'}); db.unicorns.insert({name: 'Dunx', dob: new Date(1976, 6, 18, 18, 18), loves: ['grape', 'watermelon'], weight: 704, gender: 'm', vampires: 165}); 



рдЕрдм рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред Dob рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдкреВрд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХрд┐ рдЧреЗрдВрдбрд╛ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдпрд╣ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдВрджрд░ рдПрдХ рдкреВрд░реНрдг рд╕рд░рдгреА рд╣реИ ред

рд╡реИрд╕реЗ, рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЦреЛрдЬ рдЖрджреЗрд╢ рдХреЗ рдЕрдВрдд рдореЗрдВ .pretty() рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



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

 db.getLastError() 

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

рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдирд╛


рд╕рдЯреАрдХ рдлрд╝реАрд▓реНрдб рдорд╛рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз:

 db.unicorns.find({gender: 'm'}) 

рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд▓рд┐рдЦрдХрд░, рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдкрд░ рд╕рднреА рдкреБрд░реБрд╖ рдЗрдХрд╕рд┐рдВрдЧреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

рдЖрдк рдХреНрд╡реЗрд░реА рдХреЛ рддреБрд░рдВрдд рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рднреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕реЗрдХреНрд╕ рд╕реЗ рдФрд░ рд╡рдЬрди рд╕реЗ:



рдКрдкрд░, рд╡рд┐рд╢реЗрд╖ $ gt рдЪрдпрдирдХрд░реНрддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ рдЖрдкрдХреЛ 700 рд╕реЗ рдЕрдзрд┐рдХ рд╡рдЬрди рд╡рд╛рд▓реЗ рд╕рднреА рдкреБрд░реБрд╖ рдпреВрдирд┐рдХреЙрд░реНрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреНрд╖реЗрддреНрд░ рдмрд┐рд▓реНрдХреБрд▓ рдореМрдЬреВрдж рд╣реИ :

 db.unicorns.find({vampires: {$exists: false}}) 

рдпрд╛ рддреЛ:

 db.unicorns.find({'parents.father': {$exists: true}}) 

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢ рдореЗрдВ рдпреВрдирд┐рдХреЙрд░реНрдиреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реИрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо A рдпрд╛ a рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ:

 db.unicorns.find({name: {$regex: "^[Aa]"}}) 

рдЕрдм рдПрдХ рдЕрд░реИ рд╕рд░реНрдЪ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ ред рдкреНрд░рд╢реНрди рд╕рдВрдЦреНрдпрд╛ 1: рдпрд╣ рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛:

 db.unicorns.find({loves:'apple'}) 

рдпрд╣ рд╕рд╣реА рд╣реИ: рд╣рд░ рдХреЛрдИ рдЬреЛ рд╕реЗрдм рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдирд┐рдореНрди рдЖрджреЗрд╢ рдХреЗрд╡рд▓ рдЧреЗрдВрдбрд╛ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╕реЗрдм рдФрд░ рддрд░рдмреВрдЬ рд╣реИрдВ:

 db.unicorns.find({loves:[ "apple", "watermelon" ]}) 

рдФрд░ рдПрдХ рдФрд░ рдЖрджреЗрд╢:

 db.unicorns.find({loves:[ "watermelon", "apple" ]}) 

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╣рдо рдПрдХ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреА рддреБрд▓рдирд╛ рдкрд╣рд▓реЗ рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИ, рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╕рд░рдгреА рдХреЛ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рдкрджреЛрдВ рдореЗрдВ рднреА рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдФрд░ рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рдгреА рдЦреЛрдЬ OR рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг $ рд╕рднреА рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрдВ рдПрдХ рдЦреЛрдЬ рджрд┐рдЦрд╛рдПрдВрдЧреЗред рдФрд░ рдпрд╣рд╛рдБ рдЕрдиреБрдХреНрд░рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИ:



рд╣рдо рд╕рд░рдгреА рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рднреА рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ :



рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдПрдХ рдРрд╕рд╛ рд╕рд░рдгреА рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛ? рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ $ рдЬрд╣рд╛рдВ рдСрдкрд░реЗрдЯрд░ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрд╛рддреЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 db.unicorns.find({$where: function() { return this.loves && (this.loves.length > 1) } }) 

рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдЕрднреНрдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╛рдЗрд▓ рд╣реИред

рдХрд░реНрд╕рд░ рд╕реБрд╡рд┐рдзрд╛рдПрдБ


рдЖрдЗрдП рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреАрдЫреЗ рд╣рдЯреЗрдВ рдФрд░ рдореЛрдВрдЧрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдХрд╣реЗрдВ:

  • рдвреВрдВрдвреЗрдВ () рдФрд░ рдЕрдиреНрдп рдСрдкрд░реЗрд╢рди рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рд╡реЗ рддрдерд╛рдХрдерд┐рдд "рдХрд░реНрд╕рд░" рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ;
  • рдбреЗрдЯрд╛ рдХреЗ рдЫрдкрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдЬреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рд╡рд╣ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдХрд╛рдо рд╣реИред

рдХреЛрд╖реНрдардХ рдХреЗ рдмрд┐рдирд╛ db.unicorns.find рдЯрд╛рдЗрдк рдХрд░рдХреЗ, рд╣рдореЗрдВ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ:



рд╣рдо рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ


рдСрдкрд░реЗрдЯрд░ рдореЗрдВ $ рднреА рд╣реИ:

 db.unicorns.find({weight: {$in: [650, 704]}}) 



рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЕрдкрдбреЗрдЯ рдХреА ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдЧреЗрдВрдбрд╛ рд░реВрдбреВрдбрд▓реНрд╕ рдХрд╛ рд╡рдЬрди рдмрджрд▓реЗрдВ:

 db.unicorns.update({name: "Roooooodles"}, {weight: 2222}) 

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



рдпрд╣реА рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдмрдиреА рд╣реБрдИ рд╣реИ, рд╡рд╣ 2222 рдХрд╛ рд╡рдЬрди рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдИрдбреАред

рдЖрдк рдЗрд╕реЗ $ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 db.unicorns.update({_id: ObjectId("5da6ea4d9703b8be0089e6db")}, {$set: { "name" : "Roooooodles", "dob" : ISODate("1979-08-18T18:44:00Z"), "loves" : [ "apple" ], "gender" : "m", "vampires" : 99}}) 




рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╕рдВрднрд╡ рд╣реИ:



рдЕрджреНрдпрддрди рднреА рд╣реИ - рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ:



рдФрд░ рдпрд╣рд╛рдБ рдЦреЗрддреЛрдВ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ :





рдпрд╣ рд╕реНрдХрд┐рдк рдФрд░ рд╕реАрдорд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдЬреЛрдбрд╝рдирд╛ рдмрд╛рдХреА рд╣реИ:



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

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


All Articles