рджреЛрд╕реНрддреЛрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛрд░реНрд╕ рдХрд╛ рдЕрдЧрд▓рд╛ рд▓реЙрдиреНрдЪ рдХрд▓ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЦреБрд▓рд╛ рдкрд╛рда рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреА рдПрдХ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЖрдк рдпрд╣рд╛рдБ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдмрд╛рд░ рд╣рдордиреЗ рд▓реЛрдХрдкреНрд░рд┐рдп 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}})
рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╕рдВрднрд╡ рд╣реИ:

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

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


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

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