Π‘Ρ‹Π»Π° Π»Π° MongoDB Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ?

НСдавно я ΡƒΠ·Π½Π°Π», Ρ‡Ρ‚ΠΎ Red Hat удаляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ MongoDB ΠΈΠ· Satellite (говорят, ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ). Π­Ρ‚ΠΎ заставило мСня Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² послСдниС нСсколько Π»Π΅Ρ‚ я Π²ΠΈΠ΄Π΅Π» ΠΊΡƒΡ‡Ρƒ статСй, ΠΊΠ°ΠΊ уТасна MongoDB ΠΈ Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Но Π·Π° это врСмя MongoDB стала Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π·Ρ€Π΅Π»Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ. Π§Ρ‚ΠΎ ΠΆΠ΅ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ? Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ вся Π½Π΅Π½Π°Π²ΠΈΡΡ‚ΡŒ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ошибками Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π° Π½ΠΎΠ²ΠΎΠΉ Π‘Π£Π‘Π”? Или люди просто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ MongoDB Π½Π΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ?

Если Π²Π°ΠΌ Π²Π΄Ρ€ΡƒΠ³ каТСтся, Ρ‡Ρ‚ΠΎ я Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽ MongoDB, поТалуйста, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ дисклСймСр Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Новый Ρ‚Ρ€Π΅Π½Π΄

Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π² софвСрной индустрии большС Π»Π΅Ρ‚, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ всё Ρ€Π°Π²Π½ΠΎ Π½Π° мою долю ΠΏΡ€ΠΈΡˆΠ»Π°ΡΡŒ лишь малая Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π½Π΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄Π°Ρ€ΠΈΠ»ΠΈ ΠΏΠΎ нашСй отрасли. Π― Π±Ρ‹Π» свидСтСлСм роста 4GL, AOP, Agile, SOA, Web 2.0, AJAX, блокчСйна… список бСсконСчный. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π³ΠΎΠ΄ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ. НСкоторыС быстро ΡƒΠ³Π°ΡΠ°ΡŽΡ‚, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π½ΡΡŽΡ‚ способы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО.

Π’ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π½Π΄Π° создаётся Π½Π΅ΠΊΠΎΠ΅ всСобщСС Π²ΠΎΠ»Π½Π΅Π½ΠΈΠ΅: люди ΠΈΠ»ΠΈ сами ΠΏΡ€Ρ‹Π³Π°ΡŽΡ‚ Π² Π»ΠΎΠ΄ΠΊΡƒ, ΠΈΠ»ΠΈ видят ΡˆΡƒΠΌ, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈΒ β€” ΠΈ ΠΈΠ΄ΡƒΡ‚ Π·Π° Ρ‚ΠΎΠ»ΠΏΠΎΠΉ. Π­Ρ‚ΠΎΡ‚ процСсс ΠΊΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Gartner Π² Ρ†ΠΈΠΊΠ»Π΅ Ρ…Π°ΠΉΠΏΠ°. Π₯отя ΠΈ спорный, Π½ΠΎ этот Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ описываСт, Ρ‡Ρ‚ΠΎ происходит с тСхнологиями, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ станут ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ для использования.

Но врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ появляСтся (ΠΈΠ»ΠΈ случаСтся Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅, ΠΊΠ°ΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС) новая инновация, двиТимая лишь ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π΅Ρ‘ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π’ случаС NoSQL Ρ…Π°ΠΉΠΏ Π±Ρ‹Π» сильно обусловлСн появлСниСм ΠΈ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠΎΠΌ MongoDB. НС MongoDB запустила этот Ρ‚Ρ€Π΅Π½Π΄: Π½Π° самом Π΄Π΅Π»Π΅ Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-компаниях Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ нСрСляционных Π‘Π”. ΠžΠ±Ρ‰Π΅Π΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ стартовало с Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΊ Bigtable ΠΎΡ‚ Google ΠΈ Cassandra ΠΎΡ‚ Facebook, Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ MongoDB стала самой извСстной ΠΈ доступной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… NoSQL, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠ΅Π»ΠΈ доступ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ я смСшиваю Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ Π‘Π” с ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΌΠΈ Π‘Π”, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠ· многочислСнных Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ΄ ΠΎΠ±Ρ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ NoSQL. И Π²Ρ‹ ΠΏΡ€Π°Π²Ρ‹. Но Π² Ρ‚ΠΎ врСмя Ρ†Π°Ρ€ΠΈΠ» хаос. ВсС помСшались Π½Π° NoSQL, всСм ΠΎΠ½ΠΎ стало Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, хотя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² Ρ€Π°Π·Π½Ρ‹Ρ… тСхнологиях. Для ΠΌΠ½ΠΎΠ³ΠΈΡ… MongoDB стала синонимом NoSQL.

И Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°Π±Ρ€ΠΎΡΠΈΠ»ΠΈΡΡŒ Π½Π° Π½Π΅Ρ‘. Π‘Ρ‹Π»Π° довольно Π·Π°ΠΌΠ°Π½Ρ‡ΠΈΠ²ΠΎΠΉ идСя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· схСмы, которая магичСски ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ любой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Около 2014 Π³ΠΎΠ΄Π° казалось, Ρ‡Ρ‚ΠΎ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π΅Ρ‰Ρ‘ Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ использовалась рСляционная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, такая ΠΊΠ°ΠΊ MySQL, Postgres ΠΈΠ»ΠΈ SQL Server, стали Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρ‹ MongoDB. На вопрос ΠΏΠΎΡ‡Π΅ΠΌΡƒ, Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ банального «это ΠΌΠ°ΡΡˆΡ‚Π°Π± Π²Π΅Π±Π°Β» Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ Β«ΠΌΠΎΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ слабо структурированы ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· схСмы».

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ MongoDB ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ†Π΅Π»ΠΎΠΌ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ряд ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ рСляционными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…:

  • Бтрогая схСма: с рСляционной Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ссли Ρƒ вас динамичСски сформированныС Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΡƒΡ‡Ρƒ случайных Β«Ρ€Π°Π·Π½Ρ‹Ρ…Β» столбцов Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΏΠΈΡ…Π½ΡƒΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Π±Π»ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ EAV… Ρƒ всСго этого Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ нСдостатки.
  • Π’Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ: Ссли Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ сСрвСр, MongoDB ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ….
  • Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ схСмы: Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ! Π’ рСляционной Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ структуры Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ (особСнно ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Ρ… становится ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ). MongoDB смогла Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс. И сдСлало Π΅Π³ΠΎ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π»Ρ‘Π³ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ схСму Π½Π° Ρ…ΠΎΠ΄Ρƒ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ быстро Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ записи: ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ MongoDB Π±Ρ‹Π»Π° Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ, особСнно ΠΏΡ€ΠΈ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΉ настройкС. Π”Π°ΠΆΠ΅ конфигурация MongoDB ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΅Ρ‘ часто ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠ²Π°Π»ΠΈ, дСмонстрировала Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ВсС риски Π½Π° вас

ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ прСимущСства MongoDB Π±Ρ‹Π»ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹, особСнно для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… классов ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Если ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ список Π±Π΅Π· понимания контСкста ΠΈ Π½Π΅ имСя ΠΎΠΏΡ‹Ρ‚Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ MongoDB Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Π°Ρ Π‘Π£Π‘Π”. ЕдинствСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ пСрСчислСнныС Π²Ρ‹ΡˆΠ΅ прСимущСства ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Π»ΠΈΡΡŒ рядом ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΎΠΊ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½ΠΈΠΆΠ΅.

БправСдливости Ρ€Π°Π΄ΠΈ, Π½ΠΈΠΊΡ‚ΠΎ Π² 10gen/MongoDB Inc. Π½Π΅ скаТСт, Ρ‡Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½Π½ΠΎΠ΅ Π΄Π°Π»Π΅Π΅ Π½Π΅ΠΏΡ€Π°Π²Π΄Π°, это просто компромиссы.

  • ΠŸΠΎΡ‚Π΅Ρ€Ρ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ: Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ основной ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠ½ΠΎΠ³ΠΈΡ… рСляционных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π΅ всСх, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π°). Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ останутся согласованными. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… NoSQL Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΡƒΡ…Ρ„Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ сСмантику. Но Π²Π°ΠΌ придётся самому Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒβ€¦ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТной ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΡ‘ΠΌΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Часто Π²Ρ‹ Π½Π΅ сознаётС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π‘Π” ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² нСдопустимыС состояния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠ½Π΅ сообщили, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ Π² MongoDB 4.0 появились Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π½ΠΎ с рядом ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ остаётся ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ: ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅, насколько тСхнология соотвСтствуСт вашим Π½ΡƒΠΆΠ΄Π°ΠΌ.
  • ΠŸΠΎΡ‚Π΅Ρ€Ρ рСляционной цСлостности (внСшниС ΠΊΠ»ΡŽΡ‡ΠΈ): Ссли Π² Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Π΅ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Ρ‚ΠΎ Π²Π°ΠΌ придётся ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. НаличиС Π‘Π” с соблюдСниСм этих ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ снимСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с прилоТСния ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, с Π²Π°ΡˆΠΈΡ… программистов.
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ возмоТности ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ структуру Π΄Π°Π½Π½Ρ‹Ρ…: строгиС схСмы ΠΈΠ½ΠΎΠ³Π΄Π° становятся большой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Π½ΠΎ это Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ структурирования Π΄Π°Π½Π½Ρ‹Ρ…, Ссли Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ Π‘Π”, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MongoDB, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π½Π΅Π²Π΅Ρ€ΠΎΡΡ‚Π½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ схСмы, Π½ΠΎ эта Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ снимаСт ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° сохранСниС Π΄Π°Π½Π½Ρ‹Ρ… Π² чистотС. Если Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ΡΡŒ ΠΎ Π½ΠΈΡ…, Ρ‚ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ придётся ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для ΡƒΡ‡Ρ‘Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π½Π΅ Π² Ρ‚ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅, ΠΊΠ°ΠΊΡƒΡŽ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅. Как часто говорят Π² нашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Simple Thread… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΡƒΡ‚, Π° Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‡Π½ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: MongoDB ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ схСмы: ΠΎΠ½Π° ΠΏΠΎΠ»Π΅Π·Π½Π°, Π½ΠΎ Π½Π΅ прСдоставляСт Ρ‚Π΅ ΠΆΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π² рСляционной Π‘Π”. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ схСмы Π½Π΅ влияСт Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’Ρ‹ сами Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ обновляСтС Π΄Π°Π½Π½Ρ‹Π΅ Π² соотвСтствии с Π½ΠΎΠ²ΠΎΠΉ схСмой. Π Π΅ΡˆΠ°ΠΉΡ‚Π΅ сами, достаточно Π»ΠΈ этого для Π²Π°ΡˆΠΈΡ… Π½ΡƒΠΆΠ΄.
  • БобствСнный язык запросов / потСря экосистСмы инструмСнтов: появлСниС SQL стало Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΉ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠ΅ΠΉ, ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСнилось. Π­Ρ‚ΠΎ нСвСроятно ΠΌΠΎΡ‰Π½Ρ‹ΠΉ язык, Π½ΠΎ ΠΈ довольно слоТный. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы ΠΊ Π‘Π” Π½Π° Π½ΠΎΠ²ΠΎΠΌ языкС, состоящСм ΠΈΠ· Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² JSON, расцСниваСтся ΠΊΠ°ΠΊ большой шаг Π½Π°Π·Π°Π΄ людьми, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SQL. БущСствуСт цСлая всСлСнная инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… SQL: ΠΎΡ‚ IDE Π΄ΠΎ инструмСнтов отчётности. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, которая Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ SQL, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ этих инструмСнтов ΠΈΠ»ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ пСрСвСсти Π΄Π°Π½Π½Ρ‹Π΅ Π² SQL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π° это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ слоТнСС, Ρ‡Π΅ΠΌ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅.

МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈΡΡŒ ΠΊ MongoDB, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ компромиссы, ΠΈ часто ныряли с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ, устанавливая Π΅Ρ‘ Π² качСствС основного Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ…. ПослС Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π±Ρ‹Π»ΠΎ нСвСроятно слоТно Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄.

Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅?

НС всС ΠΏΡ€Ρ‹Π³Π°Π»ΠΈ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ Π²Ρ€Π΅Π·Π°Π»ΠΈΡΡŒ Π² Π΄Π½ΠΎ. Но Π½Π΅ΠΌΠ°Π»ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² устанавливали Π±Π°Π·Ρƒ MongoDB Ρ‚ΡƒΠ΄Π°, ΠΊΡƒΠ΄Π° ΠΎΠ½Π° просто Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ»Π°Β β€” ΠΈ ΠΈΠΌ придётся ΠΆΠΈΡ‚ΡŒ с Π½Π΅ΠΉ Π΅Ρ‰Ρ‘ Π½Π΅ΠΌΠ°Π»ΠΎ Π»Π΅Ρ‚. Если Π±Ρ‹ эти ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡Π½ΠΎ ΠΎΠ±Π΄ΡƒΠΌΠ°Π»ΠΈ Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ сдСлали Π±Ρ‹ ΠΈΠ½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€.

Как Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ? Π‘Ρ‹Π»ΠΎ нСсколько ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ систСматичСский Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для внСдрСния Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π² софтвСрныС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈΒ» ΠΈ Β«Π€Ρ€Π΅ΠΉΠΌΡ„ΠΎΡ€ΠΊ для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉΒ», Π½ΠΎ ΠΌΠ½Π΅ каТСтся, Ρ‡Ρ‚ΠΎ это излишняя ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

МногиС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ, Π·Π°Π΄Π°Π² всСго Π΄Π²Π° основных вопроса. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² поискС людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ отвСтствСнно Π½Π° Π½ΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ² врСмя Π½Π° поиск ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈ Π±Π΅Π· прСдвзятости.

Если Π²Ρ‹ Π½Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ инструмСнт. Π’ΠΎΡ‡ΠΊΠ°.

Вопрос 1: КакиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ?

Если Π²Ρ‹ Π½Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ инструмСнт. Π’ΠΎΡ‡ΠΊΠ°. НС Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Если Π²Ρ‹ Π½Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ новая тСхнология Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ваша ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ тСхнология, Ρ‚ΠΎ здСсь Π½Π΅Ρ‡Π΅Π³ΠΎ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ. Если Π²Ρ‹ рассматриваСтС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Ρ‚ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, с ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΎΠ½ΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈ спроситС, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ вас Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π›Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.

Вопрос 2: Π§Π΅Π³ΠΎ я лишаюсь?

Π­Ρ‚ΠΎ, бСзусловно, Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΉ вопрос, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ придётся ΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ€ΡƒΡŽ, Ρ‚Π°ΠΊ ΠΈ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ. Иногда Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎ-настоящСму ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ, ΠΏΠΎΠΊΠ° Π½Π΅ построитС Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ с Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ»ΠΈ Ρƒ вас Π½Π΅ появится сотрудник, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠΏΡ‹Ρ‚.

Если Ρƒ вас Π½Π΅Ρ‚ Π½ΠΈ Ρ‚ΠΎΠ³ΠΎ, Π½ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ, Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ минимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… инвСстициях для опрСдСлСния цСнности этого инструмСнта. И Ссли Π²Ρ‹ сдСлаСтС инвСстиции, насколько Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅?

Π›ΡŽΠ΄ΠΈ всСгда всё портят

ΠŸΡ‹Ρ‚Π°ΡΡΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° эти вопросы ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ бСспристрастнСС, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‰ΡŒ: Π²Π°ΠΌ придётся Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с чСловСчСской ΠΏΡ€ΠΈΡ€ΠΎΠ΄ΠΎΠΉ. БущСствуСт ряд ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… искаТСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эффСктивно ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ. Π’ΠΎΡ‚ лишь нСсколько:

  • Π­Ρ„Ρ„Π΅ΠΊΡ‚ присоСдинСния ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ β€” всС ΠΎ Π½Ρ‘ΠΌ Π·Π½Π°ΡŽΡ‚, Π½ΠΎ всё Ρ€Π°Π²Π½ΠΎ с Π½ΠΈΠΌ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ тСхнология Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ соотвСтствуСт вашим Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ потрСбностям.
  • Π­Ρ„Ρ„Π΅ΠΊΡ‚ Π½ΠΎΠ²ΠΈΠ·Π½Ρ‹ β€” ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ склонны Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ прСимущСства Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. НС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ программисты, всС ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ этому ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ искаТСнию.
  • Π­Ρ„Ρ„Π΅ΠΊΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… характСристик β€” ΠΌΡ‹ склонны Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΈ упускаСм ΠΈΠ· Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ отсутствуСт. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ хаосу Π² сочСтании с эффСктом Π½ΠΎΠ²ΠΈΠ·Π½Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ своСй сути ΠΏΠ΅Ρ€Π΅ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, Π½ΠΎ ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π΅Ρ‘ нСдостатки.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Π°Ρ ΠΎΡ†Π΅Π½ΠΊΠ° даётся нСпросто, Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ основных ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… искаТСний ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

РСзюмС

Когда появляСтся нСкая инновация, Π½ΡƒΠΆΠ½ΠΎ с большой ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π° вопроса:

  • Π­Ρ‚ΠΎΡ‚ инструмСнт Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ?
  • Π₯ΠΎΡ€ΠΎΡˆΠΎ Π»ΠΈ ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ компромиссы?

Если Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° эти Π΄Π²Π° вопроса, сдСлайтС нСсколько шагов Π½Π°Π·Π°Π΄ ΠΈ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅.

Π’Π°ΠΊ Π±Ρ‹Π»Π° Π»Π° MongoDB Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΄Π°; ΠΊΠ°ΠΊ ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, это зависит ΠΎΡ‚ мноТСства Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ². Π‘Ρ€Π΅Π΄ΠΈ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» Π½Π° эти Π΄Π²Π° вопроса, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΈΠ· MongoDB ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Π΅Ρ‘ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ. ΠšΡ‚ΠΎ ΠΆΠ΅ этого Π½Π΅ сдСлал, надСюсь, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ†Π΅Π½Π½Ρ‹ΠΉ ΠΈ Π½Π΅ слишком Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎ Ρ†ΠΈΠΊΠ»Ρƒ Ρ…Π°ΠΉΠΏΠ°.

ДисклСймСр

Π₯ΠΎΡ‡Ρƒ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ я Π½Π΅ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽ Π½ΠΈ любви, Π½ΠΈ нСнависти ΠΊ MongoDB. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρƒ нас Π½Π΅ Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ MongoDB. Π― знаю, Ρ‡Ρ‚ΠΎ 10gen/MongoDB Inc. ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ дСйствовала ΠΎΡ‡Π΅Π½ΡŒ смСло, установив нСбСзопасныС значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ продвигая MongoDB Π²Π΅Π·Π΄Π΅ (особСнно Π½Π° Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π°Ρ…) Π² качСствС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ВСроятно, это Π±Ρ‹Π»ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Но ΠΎΠ½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ описанный здСсь ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ быстро Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ повСрхностной ΠΎΡ†Π΅Π½ΠΊΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com