ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½Π° Π΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½Π°ΡΠ° ΠΊΡΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ Π‘Π£ΠΠ MongoDB 5.0, ΠΊΠΎΡΡΠΎ Π·Π°Π΅ΠΌΠ° Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΡΠ·ΠΈ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Ρ Π΄Π°Π½Π½ΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ ΠΊΠ»ΡΡ/ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΈ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ Π‘Π£ΠΠ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΈ Π»Π΅ΡΠ½ΠΈ Π·Π° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΎΠ΄ΡΡ Π½Π° MongoDB Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C++ ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° SSPL, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° Π»ΠΈΡΠ΅Π½Π·Π° AGPLv3, Π½ΠΎ Π½Π΅ Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΈΠΎΠ½Π½ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ Π΄Π° ΡΠ΅ Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° SSPL Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠ°ΠΌΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π½ΠΎ ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΡΡ ΠΊΠΎΠ΄ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΡΡΠ°ΡΡΠ²Π°ΡΠΈ Π² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΡΡΠ»ΡΠ³Π°.
MongoDB ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° JSON, ΠΈΠΌΠ° Π΄ΠΎΡΡΠ° Π³ΡΠ²ΠΊΠ°Π² Π΅Π·ΠΈΠΊ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ, Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΊΡΠΌ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°ΡΠ° Map/Reduce, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΡΠΎΠΉΡΠΈΠ²ΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
MongoDB ΠΈΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ°ΡΠ΄ΠΈΠ½Π³ (ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ²ΡΡΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΊΠ»ΡΡ), Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌ ΠΊΠ»ΡΡΡΠ΅Ρ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΠΉΡΠΎ Π½ΡΠΌΠ° Π½ΠΈΡΠΎ Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ²ΡΠ΅Π΄Π° (ΠΏΠΎΠ²ΡΠ΅Π΄Π°ΡΠ° Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΈ Π΄Π° Π΅ Π²ΡΠ·Π΅Π» Π½Π΅ Π²Π»ΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ), Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΡΠ»Π΅Π΄ ΠΏΠΎΠ²ΡΠ΅Π΄Π° ΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΎΡ ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½ Π²ΡΠ·Π΅Π». Π Π°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΡΡΡΠ²ΡΡ Π² ΠΊΠ»ΡΡΡΠ΅Ρ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π±Π΅Π· ΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ.
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ (ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ), ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π·Π΅Π½ΠΈ ΠΎΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π·Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ (Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈ Π½Π° ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅). ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° Π΄Π°Π½Π½ΠΈ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π² ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° Π°Π½ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π½Π·ΠΎΡΠΈΡΠ΅. Π Π°Π±ΠΎΡΠ°ΡΠ° Ρ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΊΠ°ΡΠΎ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ, Π½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΡΡ Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π° ΡΡΡ
ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ, ΠΊΠ°ΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ Π·Π°Π±Π°Π²ΡΠ½ΠΈΡΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈ Π΄Π° Π΄Π°Π΄Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π°Π½Π°Π»ΠΈΠ·.
MongoDB ΡΡΠ΅ΡΠΈΡΠ° ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ ΠΊΠ°ΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π΅ΠΌΠΈ, Π½Π΅ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈΠ·Π³Π»Π΅Π΄ΠΈ, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π²ΡΡΡ Ρ Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π°Ρ Π²ΠΌΡΠΊΠ½Π°ΡΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³ΡΡΠΏΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ ΡΠΎΡΠΌΠ°Ρ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π²ΡΠ΅ΠΊΠΈ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Π²ΡΠ΅ΠΌΠ΅ Π·Π°ΠΏΠΈΡ ΡΠ΅ ΡΡΠ΅ΡΠΈΡΠ° ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π΅ ΠΏΠΎΠΈΡΠΊΠ°Π½. ΠΠ°Π½Π½ΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°Ρ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ (Π½ΡΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ (Π°Π½Π°Π»ΠΈΡΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ), ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ Π² ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡΡΠ°. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΠ²ΠΈΠ²Π°Ρ Π³ΡΡΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π°Π±ΠΎΡ, Π° ΠΏΠΎ-ΡΠΊΠΎΡΠΎ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Ρ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° βΠΏΡΠΎΠ·ΠΎΡΠ΅Ρβ, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ½ΠΈΡ Π½Π°Π±ΠΎΡ. ΠΠ° ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½ΠΎΠ² Π΅ΡΠ°ΠΏ $setWindowFields, Ρ ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ, Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅ ΠΊΠ»Π°ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΠ±ΠΈΡΠ΅ ΠΈ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ»ΠΎΠΆΠ½ΠΈ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²Π΅ΡΡΠΈΡ Π½Π° API, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠ±Π²ΡΡΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° API ΠΈ Π΄Π° Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΡΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π°ΡΠ° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π΅ ΠΊΡΠΌ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π‘Π£ΠΠ. API Π²Π΅ΡΡΠΈΠΈΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΎΡ ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° Π‘Π£ΠΠ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΡΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π½Π΅ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π΅ ΠΊΡΠΌ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π‘Π£ΠΠ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΆΠΈΠ²ΠΎ, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, Π±Π΅Π· Π΄Π° ΡΠΏΠΈΡΠ°ΡΠ΅ Π‘Π£ΠΠ.
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ»Π΅ΡΠ° ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Client-Side Field Level Encryption). ΠΠ΅ΡΠ΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΠΏΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΠΈΠ»ΡΡΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ Π΄Π° Π·Π°Π²ΡΡΡΠΈΡΠ΅ x509 ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ, Π±Π΅Π· Π΄Π° ΡΠΏΠΈΡΠ°ΡΠ΅ Π‘Π£ΠΠ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ Π·Π° TLS 1.3.
- ΠΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΅ Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄, MongoDB Shell (mongosh), ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° JavaScript Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Node.js ΠΈ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Π½ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° Apache 2.0. MongoDB Shell ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ Π‘Π£ΠΠ, ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠ²ΡΡΡΠ²Π°Π½Π΅ Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ MQL ΠΈΠ·ΡΠ°Π·ΠΈ, ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡΠ°Π»Π½Π° ΠΏΠΎΠΌΠΎΡ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° ΡΡΠ΅Π· Π΄ΠΎΠ±Π°Π²ΠΊΠΈ. Π‘ΡΠ°ΡΠ°ΡΠ° CLI ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° "mongo" Π΅ ΠΎΡΡ
Π²ΡΡΠ»Π΅Π½Π° ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°ΡΠ° Π² Π±ΡΠ΄Π΅ΡΠ° Π²Π΅ΡΡΠΈΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate ΠΈ $rand.
- ΠΠ°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ $eq, $lt, $lte, $gt ΠΈ $gte Π² ΠΈΠ·ΡΠ°Π·Π° $expr.
- ΠΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ aggregate, find, findAndModify, update, delete ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() ΠΈ db.collection.remove() Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ βΠ½Π΅ΠΊΠ° β ΠΎΠΏΡΠΈΡ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ°Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΠΏΠΎ-ΡΠ΅ΡΠΈΠΌΠΈ ΡΡΠ΅Π· ΠΎΡΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΎΡ ΡΡΠ»ΠΎΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°.
- ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Find, Count, distinct, aggregate, mapReduce, listCollections ΠΈ listIndexes Π²Π΅ΡΠ΅ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Ρ, Π°ΠΊΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ.
- ΠΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π° Π·Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° isMaster ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΡΡ db.isMaster() Π±ΡΡ Π° ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈ Π½Π° hello ΠΈ db.hello().
- Π‘Ρ Π΅ΠΌΠ°ΡΠ° Π·Π° Π½ΠΎΠΌΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π° ΠΈ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ ΠΏΡΠ΅Ρ ΠΎΠ΄ ΠΊΡΠΌ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΠΌ Π³ΡΠ°ΡΠΈΠΊ Π·Π° ΠΈΠ·Π΄Π°Π½ΠΈΡ. ΠΠ΅Π΄Π½ΡΠΆ Π³ΠΎΠ΄ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΈΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π° Π²Π΅ΡΡΠΈΡ (5.0, 6.0, 7.0), Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΡΠΈ ΠΌΠ΅ΡΠ΅ΡΠ° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ Ρ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (5.1, 5.2, 5.3) ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ (5.1.1, 5.1.2 .5.1.3 , 5.1). ΠΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, Ρ.Π΅. MongoDB 5.2, 5.3 ΠΈ 6.0 ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° MongoDB XNUMX.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru