【.com快译】多年来,各大平台已经意识到基于SDK连接器的单一本地数据库难以构建完整的应用平台。因此,我们往往需要面向未来的数据库即服务(Database-as-a-Service,DaaS),作为一种云原生的解决方案,通过API连接到各种客户端。同时,我们针对非SQL数据库结构,创建并普及了NoSQL相关概念。如今,市场上有许多基于NoSQL的数据库,包括:键值数据库、文档数据库、列式数据库和图数据库。虽然有CouchBase这个强大的竞争对手,但MongoDB仍然是目前文档数据库领域的老大。事实上,作为一个通用的、基于文档的分布式数据库,MongoDB是专门为云应用开发和构建的。就像JDBC连接器可以辅助Java程序连接到关系数据库的RDBMS一样,目前有很多语言和框架已经为MongoDB构建了开箱即用的连接器。例如,在MEAN(MongoDB、Express、AngularJS、Node.js)或MERN(MongoDB、Express、ReactJS、Node.js)堆栈中的关键组件Mongoose可以用作NodeJS中的模块,可以通过npm获取。在本文中,我们将重点介绍服务于分布式应用和云数据库的MongoDBAtlas平台,并以实例的形式了解它如何帮助开发者构建云原生、快速的应用服务栈。MongoDBAtlas主要功能1、纯云数据库,用户在线注册后即可获得其大量服务。2.由于Atlas支持纯基于API的通信方式,消费者可以通过多种认证授权机制(如:basicauthentication,oAuth2等),通过标准的REST接口调用数据库。3、其GraphQL功能可通过API查询。也就是说,用户可以通过从底层数据库模式自动生成模式来轻松地为其端点设置API。4.NodeJS应用程序和Gatsby的JAMStack等平台框架可以通过Atlas连接器连接到MongoDB。5.可以通过提供各种管理相关的服务来治理目标数据库。6、可以通过主从服务器的方式为集群提供多(跨)区域的可用性。7、在保留文档数据库核心能力的同时,在云服务之上增加了一个核心应用服务层——Realm,集成了多个消费端(如:Web应用、胖程序等云原生应用,ETC。)。他们都可以通过这一层连接到MongoDB并交换数据。8.它通过称为“触发器”的概念提供基于事件的集成。也就是说,“触发器”可以通过触发事件传递给其他发布者和注册消费者。9.提供无服务器编程模型,可以使用Python、JavaScript等编码语言将代码片段嵌入“函数式函数”,使其成为函数即服务(Function-As-A-Service,FaaS)来支持低代码模式。10.MongoDB可以通过电子邮件或短信连接与多个第三方(例如,Twilio的本地连接器)通信。11.提供基于角色的安全数据库访问和管理。12.可以创建用于分析和报告目的的图表。开发实例在新冠疫情的时刻,我们使用MongoDBAtlas进行开发,使用Gatsby作为JAMStack平台,搭建了一个响应式简单的Web应用。它可用于搜索和显示重要信息,例如:病床、氧气瓶、政府联系电话和志愿者。所有数据将以协作方式保存在Google表格中。作为Gatsby新手,为了避免开发中繁琐的页面和集成,我使用了GoogleAppScript和MongoDBAtlas来轻松选择和构建客户端和数据库应用程序。由于Atlas带有易于配置的集群、集合和拼接服务,因此GraphQL在MongoDB上设置和构建整个应用程序比为自定义应用程序构建样板代码更有效。快多了。当然,您也可以使用Lambda、DynamoDB、Cognito和GraphQLAPI等服务在AWS平台上构建类似的应用程序。整个应用实例的逻辑如下图所示。下面是一些关键的代码片段。GoogleSheet各种应用脚本在GoogleSheet或客户端的“工具”菜单中,点击“脚本编辑器”编写Google应用脚本。如果您在GoogleSheet中添加或修改了以下JavaScript代码,请直接点击“运行”按钮。*****通过Stitch将事件从工作表导出到MongoDB数据库****/functionexportEventsToMongoDB(){varspreadsheet=SpreadsheetApp.getActiveSpreadsheet();varsheet=spreadsheet.getSheetByName("Data");varheaderRows=1;//Numberofrowsofheaderinfo(toskip)varrange=sheet.getDataRange();//determinetherangeofpopulateddatavarnumRows=range.getNumRows();//getthenumberofrowsintherangevardata=range.getValues();//gettheactualdatainarraydata[row][column]Logger.log(JSON.stringify(data));for(vari=headerRows;i
)}exportdefaultIndexPageexportconstpageQuery=graphql`queryMQuery{allMongodbCovid19Covid19{edges{node{hospitaldatecommentesavailable_bedlinkslocationnumbertype}}}}Chart我们可以根据不同的分析目的生成各种图表可用数量类型服务。当然,其他支持的图表类型包括:圆、条、线、组合、面积、网格等。此外,MongoDBAtlas还可以用于许多其他类型的应用程序,例如将服务构建为云原生平台的一部分。原标题:Cloud-NativeandMongoDB,作者:BikramSinha {covid19DataSet.map(covid19Data=>类型 位置 医院 AvailableBed Links 联系电话 更新日期 评论 )}{covid19Data.node.type} {covid19Data.node.location} {covid19Data.node.hospital} {covid19Data.node.available_bed} {covid19Data.node.links} {covid19Data.node.number} {covid19Data.node.date} {covid19Data.node.commentes}
