NoSQLããŒã¹ã®ããŒã¿ããŒã¹ã®äžã§æãæãããŠããã¢ã³ãŽã«DBïŒ
ã¢ã³ãŽã«DBèžãæŽ»çšæ³ããç¥ããããŸãã ð
ãããã¯ç޹ä»ð
mongoDBã®ååã¯Humongousãã巚倧ãªãããååãã€ããŸãããããã°ããŒã¿ããŒã¯ãŒããçãå§ããã€ã³ã¿ãŒãããããŒã 以æ¥ã2009幎ã«çºå£²ãããNoSQLããŒã¹ã®ããŒã¿ããŒã¹ã§ããããŒã¿ããŒã¹ã¯ãµãŒãã¹éçºã®äžå¿çãªåºç€ãšãªããŸãã mongoDBãšã¯ç°ãªããç§ãã¡ã«æ
£ããŠãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ïŒMySQLãPostgreSQLïŒã¯ãã§ã«20幎以äžã®å€ãæè¡ã§ããåžžã«æ°ããããã°ã©ãã³ã°èšèªãšæè¡ãèªçããããã°ã©ãã³ã°ãšã³ã·ã¹ãã ã§ããããã®ãããªå€åãå°ãªãåéããããšããã®ãäžæè°ã§ããããŒã¿ããŒã¹ã¯ããã»ã©éèŠã§ä¿å®çãªæè¡ã§ããããŒã¿ããŒã¹ãå€ãããšããã®äžã«äœãããããã¯ãšã³ãã¯ãã¡ãããããã³ããšã³ãã«ã圱é¿ãäžããããšãã§ããŸããããããããã§ãå€å°äžæ
£ããªæè¡ã§ããã¢ã³ãŽãã£ãã«é¢ããæ§ã
ãªçåç¹ãçãã倱æé©çšäºäŸããã°ãã°èŠãããŸãã
- ã¢ã³ãŽãã£ãã¯ç¶æ³ã«å¿ããŠäœ¿ãã¹ãã§ããïŒ
- e-commerceã¯ç¡æ¡ä»¶RDSã§ã¯ãªããã
- åãã«ãã°ããç°¡åã«éçºããã®ã¯è¯ãã§ãããåŸã§è¡ããšãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãè¯ãã§ããããïŒ
- JOINããµããŒãããŠããªãããŒã¿ããŒã¹ãšã¯..?
ã©ãããæ¯èŒçæ°çæè¡ã§ãããããŠããŠãååã«ç¥ãããŠããªãããã«çºçããåé¡ã ãšæããŸãã mongoDBã¯ãªã¬ãŒã·ã§ãã«ã®ããã«æ±çšçã«äœ¿çšã§ããe-commerceãåœç¶mongoDBãšããŠéçºã§ããŸãïŒçµéšè
ã§ãïŒããããŠããããæ£ãã䜿çšãããšãå€§èŠæš¡ãªãã©ãã£ãã¯ãçºçãããšãã«ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãããã¯ããã«å¹ççã§ãã
ããããé©çšå€±æäºäŸãçããåå ã¯äœã§ããããïŒ mongoDBã®å²åŠãçè§£ããŠããªãããã§ããç°¡åãªäœ¿ãæ¹ã ãå匷ããŠã¯è¶³ããŸããããããŠäœãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®ããã«è¿ã¥ããŠã¯ãããŸããã mongoDBãã¢ã¯ã»ã¹ããåé¡è§£æ±ºæ¹æ³ã¯æ ¹æ¬çã«ä»ã®éšåãå€ãã§ãããããã®ç¹æ§ãããçè§£ããmongoDBã䜿çšãããšãmongoDBã¯å©ç¹ãæ¬åœã«ããããããããŒã¿ããŒã¹ã§ãã
ãªãåŠã°ãªããã°ãªããªãã®ãâïž
- ããŒã¿ããŒã¹ããã©ãã£ãã¯ã®ããã«ããã¯ã«ãªããããã®ã§ãããmongoDBã¯ãã®ã¹ã±ãŒã©ããªãã£ã®åé¡ãæ ¹æ¬çã«è§£æ±ºã§ããŸãã
- ããã¯ãšã³ãéçºãäžç·ã«åŠã³ãªããmongoDBãæ£ããåŠç¿ã§ããŸããããã¯ãšã³ãéçºãšããŒã¿ããŒã¹ã¯äžäœã§ãïŒ
- Webéçºã§éä¿¡ããããŒã¿ã¯ã»ãšãã©JSON圢åŒã§ãã mongoDBãä¿åããããŒã¿åã¯JSONïŒBSONïŒã§ãããã®ãããéäžã§ããã¯ãšã³ãã§ããŒã¿å€æãããããORMã䜿çšããå¿
èŠãã»ãšãã©ãªããªããŸããããã ãé²å
¥éå£ãäœããªãããšããããŸãã
- æ±çšçã«äœ¿çšã§ããããŒã¿ããŒã¹ã§ãã NoSQLããŒã¿ããŒã¹ã®ç¹æ§äžãACID TransactionããµããŒããããŠããªãå Žåãã»ãšãã©ã§ãã mongoDBã¯NoSQLã®æ°Žå¹³çãªæ¡åŒµç¹æ§ãæã¡ãªããããŒãžã§ã³4.0ããACID TransactionããµããŒãããŠããŸãã
- è¬çŸ©ã®åãã«éåæããã°ã©ãã³ã°ãã€ããã§é²ãã§ãããŸããããã¯ãšã³ããããŒã¿ããŒã¹ãšå¹ççã«éä¿¡ããããã®éèŠãªæŠå¿µã§ãã
ãã®è¬çŸ©ã§åŠã¶ããšâïž
- mongoDBã®åºæ¬çãªäœ¿ãæ¹ - CRUD
- mongoDB Atlas - 管çã¯ã©ãŠãããŒã¿ããŒã¹ã®ãããã€
- éåæïŒasyncïŒããã°ã©ãã³ã°ã§ããã¯ãšã³ãå¹çãæå€§å
- Expressãã¬ãŒã ã¯ãŒã¯ã§REST APIãäœæãã
- é¢é£ããŒã¿ãå¹ççã«èªã¿åãæ¹æ³
- åææžãèŠªææžã«é©åã«åã蟌ãã§èªã¿åãããã©ãŒãã³ã¹ãæå€§åãã
- Indexãé©çšããŠããã²ãŒã·ã§ã³ããã©ãŒãã³ã¹ãæå€§å
- ãã©ã³ã¶ã¯ã·ã§ã³ïŒMulti Document TransactionïŒã掻çšããŠäžè²«ããŠããŒã¿ã管çãã
- AWS lightsail ã«ããã¯ãšã³ããµãŒããŒããããã€ãã
- ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãšmongoDBã®æ¯èŒ
以äžã¯è¬çŸ©ã§äœ¿çšãããããã€ãã®è³æã§ã:)
ããã§æ±ãæè¡ ð§°
mongoDBãNode.jsãJavascriptãPostmanãAWSãmongoDB Atlas
äºæ³ããã質å Q&A ðð»ââïž
Q. Node.js(Javascript) éçºè
ã®ããã®è¬çŸ©ã§ããïŒ
A. ãã®è¬çŸ©ã¯mongoDBè¬çŸ©ã§ãã Node.jsã¯ããã¯ãšã³ãéçºè
ãmongoDBãæ£ããæŽ»çšããå
šäœçãªæµãã瀺ãããã®ææ®µã§ãããã®ãããä»ã®èšèªã§ããã¯ãšã³ãã®éçºãããŠããæ¹ãåè¬ã§ããŸãã Node.jsã«é¢é£ããéšåã¯ãäžè¬çã«äœ¿çšãããåºæ¬çãªæŠå¿µïŒREST APIãéåæããã°ã©ãã³ã°ïŒã§ããæŠå¿µãããçè§£ããã°ãmongoDBãã©ã®ãããªéçºç°å¢ã§ããã䜿ãããšãã§ããã§ããã:)
Q. ããã¯ãšã³ã(Node.js)ãäžç·ã«æ±ãçç±ã¯ãããŸããïŒ
A. ãã®ã¬ãã¹ã³ã§ã¯ãããã¯ãšã³ãéçºè
ãmongoDBããŒã¿ããŒã¹ãæ£ããèšèšããŠäœ¿çšããæ¹æ³ãæããŠããŸããããã§ãè¬çŸ©ã®åãã«ããŒã¿ããŒã¹ãæ£ããæŽ»çšã§ããããã«ãåºæ¬çãªããã¯ãšã³ãéçºãäžç·ã«æããŸãããããããŠããã®è¬çŸ©ã¯DevOpsè¬çŸ©ã§ã¯ãããŸãããããŒã¿ããŒã¹ãã©ã®ããã«ã€ã³ã¹ããŒã«ããã¬ããªã«ã»ãããã·ã§ã«ãã£ã³ã°ãã©ã®ããã«æ§ç¯ããŠç®¡çããããæããŠããŸããã代ããã«ããããã®DevOpsãŸãŒã³ãèªååãã管çã¯ã©ãŠããµãŒãã¹ãmongoDB Atlasã䜿çšããŸãã
Q. MongoDB AggregateãåŠã³ãŸããïŒ
A. ä»åã®è¬çŸ©ã§ã¯ããäžè¬çãªãããã¯ãšã³ãéçºã§ã¢ã³ãŽãã£ããã¢ã³ãŽãã£ãã¹ã«ããæŽ»çšããæ¹æ³ã«çŠç¹ãåœãŠãŸãããåŒã³åºãé »åºŠã®é«ãäžè¬çãªAPIã§Aggregateã䜿çšãããšãDiveã«è² è·ããããå¯èœæ§ãããããããå§ãã§ããŸãããç°¡åã«èãããšãAggregateããã䜿ãããã«ãªãã°ã¢ã³ãŽã«ãã£ãã¹ã«äœ¿çšããããšãã§ããããªã¬ãŒã·ã§ãã«ãã£ãã®ããã«äœ¿çšããããšã«ãªããšèŠãããŸãããããã£ãŠããã®ã¬ãã¹ã³ã§ã¯Aggregateé¢é£ã®ã³ã³ãã³ããå«ããŸããã§ããã Aggregateãªãã§ã¢ã³ãŽãã£ããæ£ããæŽ»çšããæ¹æ³ã玹ä»ããŸãïŒã ãããšãã£ãŠAggregateãæªããšããããšã¯çµ¶å¯Ÿã§ã¯ãããŸããã䜿çšçšéãå¥ã«ããã ãã§ããçµ±èšãäœæãããã倧éã®ããŒã¿åŠçãªã©ãããŒã¿ãšã³ãžãã¢ãªã³ã°ã®åéã§éåžžã«åŒ·åãªããŒã«ã§ããäžè¬çãªAPIãšæ¯èŒãããšããããã®ããŒã¿ãšã³ãžãã¢ãªã³ã°åŠçã¯åŒã³åºãé »åºŠãã¯ããã«å°ãªããå¿çé床ãé·ãããã£ãŠãããªãé¢ä¿ããªããšããç¹åŸŽãæã£ãŠããŸããããšãã°ãååæããšã«å£²äžç¶æ³ãæœåºãããå Žåã¯ãååæã«äžåºŠãã€ã¢ã°ãªã²ãŒãé
眮ãåããŠçµæå€ãä¿åããŠããããšçµæå€ãçŽ æ©ãåŒã³åºãã°ããã§ããããä»åŸãMongoDBããŒã¹ã®Data Engineerè¬çŸ©ãå¶äœããäºå®ã§ãããã®æãMongoDB Aggregateã¯ãã¡ãããMongoDB Data Lakeã§ããã°ããŒã¿ç®¡çãMongoDB Chartsã§ããŒã¿å¯èŠåãŸã§åãäžããäºå®ã§ãïŒ
Q. ãã®è¬çŸ©ãå§ãããã£ããã玹ä»ããŠãã ããã
A. ç§ã¯éå°æ»è
åºèº«ã§ãããªã³ã©ã€ã³ã§æ£ãã°ã£ãç Žçã®è³æãèŠãŠåæããé©çšããªããåŠã³ãŸããããã®ããã»ã¹ãç¹°ãè¿ããšãæŠå¿µãæœè±¡åãããæŽçãããŸããããã§èšããæœè±¡åããšã¯æ¬åœã«éèŠãªæŠå¿µã§ããéçºããããšãã«ãµãŒãã¹ãæ»ãããã«ãåçŽãªæ©èœã®å®è£
ã ããã§ããŸãããããããæœè±¡åããããŸããã£ãéçºè
ã¯ããããŸãåäœãããããæ¡åŒµæ§ã®ããããµãŒãã¹ãäœãããšãã§ããŸããä»ã®è¡šçŸã§ã¯ãWhyãããçè§£ããŠããéçºè
ãšãèšããã§ãããããšããããæ¯èŒçææ°ã®æè¡ã§ããã»ã©ãã³ãã¥ããã£ã®åçªäœã§Whyã«å¯Ÿããç解床ãäœäžããŸããããã§ãæ¯èŒçèŠç¥ãã¬ããŒã¿ããŒã¹ã§ããmongoDBãããŒãã«è¬çŸ©ãå¶äœããŠã¿ãŸããã Whyãããçè§£ããè¯ããµãŒãã¹ãããããäœã£ãŠãã ããïŒ