ΠΡΠ΅Π·Π΅Π½ΡΠΈΡΠ°Π½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° DBMS ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΊΠΎΠ½ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ MongoDB 5.0, ΠΊΠΎΡΠ° Π·Π°Π·Π΅ΠΌΠ° Π½ΠΈΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ Π±ΡΠ·ΠΈΡΠ΅ ΠΈ ΡΠΊΠ°Π»Π°Π±ΠΈΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠΎΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°Π°Ρ ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΡΠΎΡΠΌΠ°Ρ ΠΊΠ»ΡΡ/Π²ΡΠ΅Π΄Π½ΠΎΡΡ ΠΈ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½ΠΈ DBMS ΠΊΠΎΠΈ ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΈ Π»Π΅ΡΠ½ΠΈ Π·Π° ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ ΠΏΡΠ°ΡΠ°ΡΠ°. ΠΠΎΠ΄ΠΎΡ MongoDB Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ C++ ΠΈ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° SSPL, ΠΊΠΎΡΠ° ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π° Π½Π° Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° AGPLv3, Π½ΠΎ Π½Π΅ Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½Π°, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΎΠ΄ΡΠΆΠΈ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡΡΠΊΠΈ ΡΡΠ»ΠΎΠ² Π΄Π° ΡΠ΅ Π΄ΠΎΡΡΠ°Π²ΡΠ²Π° ΡΠΏΠΎΡΠ΅Π΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° SSPL Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠ°ΠΌΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°, ΡΡΠΊΡ ΠΈ ΠΈΠ·Π²ΠΎΡΠΎΡ. ΠΊΠΎΠ΄ Π½Π° ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π²ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΎΠ±Π»Π°ΠΊ.
MongoDB ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ Π²ΠΎ ΡΠΎΡΠΌΠ°Ρ ΡΠ»ΠΈΡΠ΅Π½ Π½Π° JSON, ΠΈΠΌΠ° ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π΅Π½ ΡΠ°Π·ΠΈΠΊ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠ°ΡΠ°ΡΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ·Π΄Π°Π²Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ, Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ, ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π΅Π²ΠΈΠ΄Π΅Π½ΡΠΈΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ ΠΈ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΌΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎΡΡ ΡΠΎ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°ΡΠ° Map/Reduce, ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΈ ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ½ΠΈ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ.
MongoDB ΠΈΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ ΡΠ°Π·Π΄Π²ΠΎΡΡΠ²Π°ΡΠ΅ (Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° Π½Π° Π·Π±ΠΈΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΠΈΡΠ΅ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΊΠ»ΡΡ), Π²ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠ° ΡΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΡΠΊΠ°Π»Π°Π±ΠΈΠ»Π΅Π½ ΠΊΠ»Π°ΡΡΠ΅Ρ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π²ΠΎ ΠΊΠΎΡ Π½Π΅ΠΌΠ° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° ΡΠΎΡΠΊΠ° Π½Π° Π½Π΅ΡΡΠΏΠ΅Ρ (Π½Π΅ΡΡΠΏΠ΅Ρ ΠΎΡ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΡΠ°Π·ΠΎΠ» Π½Π΅ Π²Π»ΠΈΡΠ°Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ), Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ ΠΏΠΎ Π΄Π΅ΡΠ΅ΠΊΡ ΠΈ ΠΏΡΠ΅Π½ΠΎΡ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ ΠΎΠ΄ Π½Π΅ΡΡΠΏΠ΅ΡΠ΅Π½ ΡΠ°Π·ΠΎΠ». ΠΡΠΎΡΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π΅Π΄Π΅Π½ ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠ΅ Π²ΡΡΠΈ Π±Π΅Π· Π·Π°ΠΏΠΈΡΠ°ΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π½Π° Π½ΠΎΠ²ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ.
ΠΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ Π·Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ (Π·Π±ΠΈΡΠΊΠΈ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ), ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠ°ΡΡΠΈΡΠ° ΠΎΠ΄ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ (Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π·Π±ΠΈΡ Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΡΡΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°Π°Ρ Π½Π° ΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅). ΠΠΎΡΡΠ΅Π±Π°ΡΠ° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°ΠΊΠ²ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ΅ ΡΠ°Π²ΡΠ²Π° Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅, ΡΠΈΠ½Π°Π½ΡΠΈΡΠΊΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° ΡΠΎΡΡΠΎΡΠ±ΠΈ ΡΠΎ ΡΠ΅Π½Π·ΠΎΡΠΈ Π·Π° Π°Π½ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅. Π Π°Π±ΠΎΡΠ°ΡΠ° ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²Π΅Π΄ΡΠ²Π° ΠΊΠ°ΠΊΠΎ ΡΠΎ ΠΎΠ±ΠΈΡΠ½ΠΈΡΠ΅ Π·Π±ΠΈΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ, Π½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΡ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π·Π° Π½ΠΈΠ² ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π΅ΠΌΠ°ΡΡΠΈ ΡΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ°ΡΠ° Π·Π° Π²ΡΠ΅ΠΌΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ° Π½Π°ΠΌΠ°Π»ΠΈ ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΡΠΎΡ Π½Π° Π΄ΠΈΡΠΊΠΎΡ, Π΄Π° Π³ΠΈ Π½Π°ΠΌΠ°Π»ΠΈ Π΄ΠΎΡΠ½Π΅ΡΠ°ΡΠ° Π²ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π±Π°ΡΠ°ΡΠ°ΡΠ° ΠΈ Π΄Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°.
MongoDB Π³ΠΈ ΡΡΠ΅ΡΠΈΡΠ° ΡΠ°ΠΊΠ²ΠΈΡΠ΅ Π·Π±ΠΈΡΠΊΠΈ ΠΊΠ°ΠΊΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΠ΅, Π½Π΅ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΠΈ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π½Π° Π²Π½Π°ΡΡΠ΅ΡΠ½ΠΈ Π·Π±ΠΈΡΠΊΠΈ ΠΊΠΎΠΈ, ΠΊΠΎΠ³Π° ΡΠ΅ Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°Π°Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π³ΠΈ Π³ΡΡΠΏΠΈΡΠ°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈΡΠ΅ ΡΠ΅ΡΠΈΠΈ Π²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ ΡΠΎΡΠΌΠ°Ρ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅. ΠΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΡΠ΅ΠΊΠΎΡ Π·Π°ΠΏΠΈΡ Π·Π°ΡΠ½ΠΎΠ²Π°Π½ Π½Π° Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΡΡΠ΅ΡΠΈΡΠ° ΠΊΠ°ΠΊΠΎ ΠΏΠΎΡΠ΅Π±Π΅Π½ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΊΠΎΠ³Π° ΡΠ΅ Π±Π°ΡΠ°. ΠΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π°Π°Ρ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π°Ρ ΡΠΏΠΎΡΠ΅Π΄ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ (Π½Π΅ΠΌΠ° ΠΏΠΎΡΡΠ΅Π±Π° Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ).
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ (Π°Π½Π°Π»ΠΈΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ) ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π°Ρ Π΄Π° Π²ΡΡΠΈΡΠ΅ Π΄Π΅ΡΡΡΠ²Π° ΡΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΡΠ΅Ρ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ Π²ΠΎ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡΠ°ΡΠ°. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ Π·Π±ΠΈΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠΎΡ Π½Π΅ Π³ΠΎ ΡΠΎΠ±ΠΈΡΠ°Π°Ρ Π³ΡΡΠΏΠΈΡΠ°Π½ΠΎΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, ΡΡΠΊΡ ΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°Π°Ρ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° βΠΏΡΠΎΠ·ΠΎΡΠ΅Ρβ ΠΊΠΎΡ Π²ΠΊΠ»ΡΡΡΠ²Π° Π΅Π΄Π΅Π½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ ΠΎΠ΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ. ΠΠ° Π΄Π° ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ° ΡΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½ΠΎΠ²Π° ΡΠ°Π·Π° $setWindowFields, ΡΠΎ ΠΊΠΎΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π³ΠΈ ΠΎΠ΄ΡΠ΅Π΄ΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ Π΄Π²Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ Π²ΠΎ Π·Π±ΠΈΡΠΊΠ°ΡΠ°, Π΄Π° ΠΏΡΠ΅ΡΠΌΠ΅ΡΠ°ΡΠ΅ ΡΠ°Π½Π³ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΆΠ±Π°ΡΠ° ΠΈ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ.
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° API, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΏΠΎΠ²ΡΠ·Π΅ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° Π·Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΡΠΎΡΡΠΎΡΠ±Π° Π½Π° API ΠΈ Π΄Π° Π³ΠΈ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΡΠΈΠ·ΠΈΡΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΊΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡΠ° Π½Π°Π½Π°Π·Π°Π΄ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π½ΠΎΠ²ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° Π½Π° DBMS. ΠΠ΅ΡΠ·ΠΈΡΠ°ΡΠ° Π½Π° API Π³ΠΎ ΠΎΠ΄Π²ΠΎΡΡΠ²Π° ΠΆΠΈΠ²ΠΎΡΠ½ΠΈΠΎΡ ΡΠΈΠΊΠ»ΡΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΎΠ΄ ΠΆΠΈΠ²ΠΎΡΠ½ΠΈΠΎΡ ΡΠΈΠΊΠ»ΡΡ Π½Π° DBMS ΠΈ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π΄Π° ΠΏΡΠ°Π²Π°Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΊΠΎΠ³Π° ΠΈΠΌΠ° ΠΏΠΎΡΡΠ΅Π±Π° Π΄Π° ΠΊΠΎΡΠΈΡΡΠ°Ρ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π½Π΅ ΠΊΠΎΠ³Π° ΠΌΠΈΠ³ΡΠΈΡΠ°Π°Ρ Π½Π° Π½ΠΎΠ²Π° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° DBMS.
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΡ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΆΠΈΠ²ΠΎ, ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΈ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠΏΡΠΈΡΠ°ΡΠ° Π·Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π·Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π²ΠΎ Π»Π΅Ρ Π±Π΅Π· Π·Π°ΠΏΠΈΡΠ°ΡΠ΅ Π½Π° DBMS.
- ΠΡΠΎΡΠΈΡΠ΅Π½ΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠ° ΠΎΠ΄ ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ (ΠΠ»ΠΈΠ΅Π½Ρ-ΡΡΡΠ°Π½Π° Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ Π΅Π½ΠΊΡΠΈΠΏΡΠΈΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ). Π‘Π΅Π³Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π°Ρ ΡΠ΅Π²ΠΈΠ·ΠΎΡΡΠΊΠΈΡΠ΅ ΡΠΈΠ»ΡΡΠΈ ΠΈ Π΄Π° ΡΠ΅ ΡΠΎΡΠΈΡΠ°Π°Ρ x509 ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ΅ Π±Π΅Π· Π΄Π° ΡΠ΅ Π·Π°ΠΏΡΠ΅ DBMS. ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎ ΡΠΈΡΡΠΈ Π·Π° TLS 1.3.
- Π‘Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½ΠΎΠ²Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°ΡΠ° Π»ΠΈΠ½ΠΈΡΠ°, MongoDB Shell (mongosh), ΠΊΠΎΡΠ° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΊΠ°ΠΊΠΎ ΠΏΠΎΡΠ΅Π±Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ JavaScript ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Node.js ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° Apache 2.0. MongoDB Shell ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ ΡΠΎ DBMS, ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ ΠΈ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΏΡΠ°ΡΠ°ΡΠ°. ΠΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΏΠ°ΠΌΠ΅ΡΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΈΡΠ°ΡΠ΅ Π·Π° Π²Π½Π΅ΡΡΠ²Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ MQL ΠΈΠ·ΡΠ°Π·ΠΈ, ΠΈΡΡΠ°ΠΊΠ½ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠ°ΡΠ°, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡΠ°Π»Π½Π° ΠΏΠΎΠΌΠΎΡ, ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΡΠ°ΠΊΠΈ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΎΡΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° ΠΏΡΠ΅ΠΊΡ Π΄ΠΎΠ΄Π°ΡΠΎΡΠΈ. Π‘ΡΠ°ΡΠ°ΡΠ° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° CLI βmongoβ Π΅ Π·Π°ΡΡΠ°ΡΠ΅Π½Π° ΠΈ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΎΡΡΡΡΠ°Π½Π΅ΡΠ° Π²ΠΎ ΠΈΠ΄Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.
- ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΡΠ΅ Π½ΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate ΠΈ $rand.
- ΠΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π΄Π΅ΠΊΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ $eq, $lt, $lte, $gt ΠΈ $gte Π²ΠΎ ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΈΠ·ΡΠ°Π·ΠΎΡ $expr.
- ΠΠ°ΡΠ΅Π΄Π±ΠΈΡΠ΅ Π·Π° Π°Π³ΡΠ΅Π³Π°Ρ, Π½Π°ΠΎΡΠ°ΡΠ΅, Π½Π°ΠΎΡΠ°ΡΠ΅ΠΠ½Π΄ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΡΠ΅, Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅, Π±ΡΠΈΡΠ΅ΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() ΠΈ db.collection.remove() ΡΠ΅Π³Π° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ βΠ½Π΅ΠΊΠ° β ΠΎΠΏΡΠΈΡΠ° Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π»ΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΊΠΎΠΈ Π³ΠΈ ΠΏΡΠ°Π²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΠΏΠΎΡΠΈΡΠ»ΠΈΠ²ΠΈ ΡΠΎ ΠΎΠ΄Π²ΠΎΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΎΠ΄ ΡΠ΅Π»ΠΎΡΠΎ Π½Π° Π±Π°ΡΠ°ΡΠ΅ΡΠΎ.
- ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° Π½Π°ΠΎΡΠ°ΡΠ΅, Π±ΡΠΎΠ΅ΡΠ΅, ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π°ΡΠ΅, ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅, 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