{"id":99,"date":"2024-11-10T08:44:50","date_gmt":"2024-11-10T07:44:50","guid":{"rendered":"https:\/\/www.systemdeveloper.nl\/tech\/?p=99"},"modified":"2024-11-28T14:07:23","modified_gmt":"2024-11-28T13:07:23","slug":"building-a-robust-data-api-with-mongodb","status":"publish","type":"post","link":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/","title":{"rendered":"Building a Robust Data API with MongoDB"},"content":{"rendered":"<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Creating a scalable, flexible API to serve complex football data can be a challenge, especially when handling extensive datasets and frequent changes. Traditional relational databases like MySQL are reliable, but they may not be the best fit for dynamic data structures. In this project, we leverage MongoDB, a NoSQL database, to handle intricate football data&mdash;teams, players, matches, and more. Using MongoDB enables us to manage vast amounts of structured and unstructured data efficiently, while our API offers quick access to this data, tailored for real-time football insights.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"step-1-initializing-mongodb\">Step 1: Initializing MongoDB<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">We began by installing MongoDB, configuring it to handle football data effectively. MongoDB&#8217;s document-oriented structure lets us store data in JSON-like BSON documents, which are ideal for complex, nested football information. For this project, we set up three primary collections:<\/p>\n\n\n<ul class=\"wp-block-list wp-block-list\">\n<li>\n<strong><code>people<\/code><\/strong>: Contains detailed player profiles and additional information.<\/li>\n\n\n\n<li>\n<strong><code>team<\/code><\/strong>: Holds team data, including metadata about each team.<\/li>\n\n\n\n<li>\n<strong><code>squad<\/code><\/strong>: Stores shortened team details with a list of player IDs associated with each team.<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Each collection was designed to interlink, avoiding redundant data and enhancing query speed. For instance, <code>squad<\/code> links directly to <code>people<\/code> by storing <code>people_id<\/code> and <code>membership_id<\/code> rather than duplicating player details. This design allows the API to access specific player or team information swiftly.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"step-2-defining-relationships-and-indexes\">Step 2: Defining Relationships and Indexes<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Given the volume and interconnectedness of our data, indexing was critical to optimizing performance. We defined unique indexes across collections to ensure quick lookups and maintain data integrity:<\/p>\n\n\n<ul class=\"wp-block-list wp-block-list\">\n<li>\n<code>team<\/code>: <code>team_id<\/code> (unique)<\/li>\n\n\n\n<li>\n<code>competition<\/code>: <code>competition_id<\/code> (unique), <code>area_id<\/code>\n<\/li>\n\n\n\n<li>\n<code>matches<\/code>: <code>match_id<\/code> (unique), <code>date<\/code>, <code>team_a_id<\/code>, <code>team_b_id<\/code>, <code>round_id<\/code>\n<\/li>\n\n\n\n<li>\n<code>people<\/code>: <code>people_id<\/code> (unique), <code>membership_id<\/code>, <code>common_name<\/code>\n<\/li>\n\n\n\n<li>\n<code>rounds<\/code>: <code>round_id<\/code> (unique), <code>season_id<\/code>\n<\/li>\n\n\n\n<li>\n<code>seasons<\/code>: <code>season_id<\/code> (unique), <code>competition_id<\/code>\n<\/li>\n\n\n\n<li>\n<code>season_teams<\/code>: <code>season_id<\/code> &amp; <code>team_id<\/code> (unique), <code>team_id<\/code>\n<\/li>\n\n\n\n<li>\n<code>squad<\/code>: <code>team_id<\/code> (unique), <code>people_id<\/code>\n<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">These indexes allow the API to access player information per team, manage relations between documents, and perform lookups at scale with minimal latency.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"step-3-handling-complex-queries-with-flexibility\">Step 3: Handling Complex Queries with Flexibility<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">One of our key requirements was to retrieve data flexibly. For example, we wanted to retrieve player information by common name, irrespective of case or spaces, so we configured the MongoDB API to handle case sensitivity. This ensures our queries remain robust and return results even with variations in naming conventions.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"step-4-efficiently-managing-data-types-and-errors\">Step 4: Efficiently Managing Data Types and Errors<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">MongoDB&rsquo;s flexible data types allow us to manage fields without restructuring the database. For example, we stored the &#8220;goals&#8221; field as a string in MongoDB rather than converting it to another type. This approach preserved data consistency and avoided potential typecasting errors.<\/p>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">To improve error management while importing data, we modified our MongoDB script to resume from the last processed record if an error occurs, ensuring that the script runs seamlessly without re-processing entire documents unnecessarily.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"step-5-creating-an-api-for-real-time-football-data\">Step 5: Creating an API for Real-Time Football Data<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Our API, built using Flask, connects MongoDB&rsquo;s football data collections to external applications. We designed it with modular endpoints to allow users to select specific data fields&mdash;such as player statistics or career details&mdash;based on their needs. Here are some key features of the API:<\/p>\n\n\n<ul class=\"wp-block-list wp-block-list\">\n<li>\n<strong>Dynamic Endpoint Configuration<\/strong>: Users can specify which fields to include in the API response, reducing unnecessary data load.<\/li>\n\n\n\n<li>\n<strong>Unicode Compatibility<\/strong>: JSON responses are formatted without escaping special characters, thanks to <code>ensure_ascii=False<\/code>.<\/li>\n<\/ul>\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">This MongoDB-powered API provides a solid foundation for delivering real-time football data with scalability and flexibility. MongoDB&rsquo;s document-based structure, combined with our efficient indexing and API features, offers a powerful solution for managing the dynamic and complex nature of sports data. As football seasons progress and team structures change, this API can adapt quickly, making it a resilient and forward-thinking choice for football data management.<\/p>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Creating a scalable, flexible API to serve complex football data can be a challenge, especially when handling extensive datasets and frequent changes. Traditional relational databases like MySQL are reliable, but they may not be the best fit for dynamic data structures. In this project, we leverage MongoDB, a NoSQL database, to handle intricate football data&mdash;teams, &hellip;<\/p>\n","protected":false},"author":1,"featured_media":101,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,16],"tags":[15,13,14],"class_list":["post-99","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mongodb","category-tech-innovation","tag-api","tag-mongodb","tag-nosql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Building a Robust Data API with MongoDB - SystemDeveloper.NL<\/title>\n<meta name=\"description\" content=\"Creating a scalable, flexible API to serve complex data can be a challenge, especially when handling extensive datasets and frequent changes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building a Robust Data API with MongoDB - SystemDeveloper.NL\" \/>\n<meta property=\"og:description\" content=\"Creating a scalable, flexible API to serve complex data can be a challenge, especially when handling extensive datasets and frequent changes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/\" \/>\n<meta property=\"og:site_name\" content=\"SystemDeveloper.NL\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/quan.tora.16\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-10T07:44:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-28T13:07:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"John Timmer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Timmer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/\"},\"author\":{\"name\":\"John Timmer\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/#\\\/schema\\\/person\\\/5760c2ed5300c56d8ef01dfb00a9763b\"},\"headline\":\"Building a Robust Data API with MongoDB\",\"datePublished\":\"2024-11-10T07:44:50+00:00\",\"dateModified\":\"2024-11-28T13:07:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/\"},\"wordCount\":565,\"publisher\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp\",\"keywords\":[\"API\",\"MongoDB\",\"NoSQL\"],\"articleSection\":[\"MongoDB\",\"Tech Innovation\"],\"inLanguage\":\"en\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/\",\"url\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/\",\"name\":\"Building a Robust Data API with MongoDB - SystemDeveloper.NL\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp\",\"datePublished\":\"2024-11-10T07:44:50+00:00\",\"dateModified\":\"2024-11-28T13:07:23+00:00\",\"description\":\"Creating a scalable, flexible API to serve complex data can be a challenge, especially when handling extensive datasets and frequent changes.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp\",\"contentUrl\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp\",\"width\":900,\"height\":675,\"caption\":\"Mongo DB\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/building-a-robust-data-api-with-mongodb\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building a Robust Data API with MongoDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/#website\",\"url\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/\",\"name\":\"www.systemdeveloper.nl\",\"description\":\"NextGen IT\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/#organization\",\"name\":\"www.systemdeveloper.nl\",\"url\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/qt-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/qt-logo.png\",\"width\":1346,\"height\":1230,\"caption\":\"www.systemdeveloper.nl\"},\"image\":{\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/quan.tora.16\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/#\\\/schema\\\/person\\\/5760c2ed5300c56d8ef01dfb00a9763b\",\"name\":\"John Timmer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/cropped-D6E27035-6864-4270-8D72-0D8C0C59F370-96x96.jpeg\",\"url\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/cropped-D6E27035-6864-4270-8D72-0D8C0C59F370-96x96.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/cropped-D6E27035-6864-4270-8D72-0D8C0C59F370-96x96.jpeg\",\"caption\":\"John Timmer\"},\"sameAs\":[\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\"],\"url\":\"https:\\\/\\\/www.systemdeveloper.nl\\\/tech\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building a Robust Data API with MongoDB - SystemDeveloper.NL","description":"Creating a scalable, flexible API to serve complex data can be a challenge, especially when handling extensive datasets and frequent changes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/","og_locale":"en_US","og_type":"article","og_title":"Building a Robust Data API with MongoDB - SystemDeveloper.NL","og_description":"Creating a scalable, flexible API to serve complex data can be a challenge, especially when handling extensive datasets and frequent changes.","og_url":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/","og_site_name":"SystemDeveloper.NL","article_publisher":"https:\/\/www.facebook.com\/quan.tora.16","article_published_time":"2024-11-10T07:44:50+00:00","article_modified_time":"2024-11-28T13:07:23+00:00","og_image":[{"width":900,"height":675,"url":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp","type":"image\/webp"}],"author":"John Timmer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"John Timmer","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/#article","isPartOf":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/"},"author":{"name":"John Timmer","@id":"https:\/\/www.systemdeveloper.nl\/tech\/#\/schema\/person\/5760c2ed5300c56d8ef01dfb00a9763b"},"headline":"Building a Robust Data API with MongoDB","datePublished":"2024-11-10T07:44:50+00:00","dateModified":"2024-11-28T13:07:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/"},"wordCount":565,"publisher":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/#organization"},"image":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp","keywords":["API","MongoDB","NoSQL"],"articleSection":["MongoDB","Tech Innovation"],"inLanguage":"en"},{"@type":"WebPage","@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/","url":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/","name":"Building a Robust Data API with MongoDB - SystemDeveloper.NL","isPartOf":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/#primaryimage"},"image":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp","datePublished":"2024-11-10T07:44:50+00:00","dateModified":"2024-11-28T13:07:23+00:00","description":"Creating a scalable, flexible API to serve complex data can be a challenge, especially when handling extensive datasets and frequent changes.","breadcrumb":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/#primaryimage","url":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp","contentUrl":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/cfb2cabe-bdb4-43e0-a9fb-9521cc4a52e0-e1732799237916.webp","width":900,"height":675,"caption":"Mongo DB"},{"@type":"BreadcrumbList","@id":"https:\/\/www.systemdeveloper.nl\/tech\/building-a-robust-data-api-with-mongodb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.systemdeveloper.nl\/tech\/"},{"@type":"ListItem","position":2,"name":"Building a Robust Data API with MongoDB"}]},{"@type":"WebSite","@id":"https:\/\/www.systemdeveloper.nl\/tech\/#website","url":"https:\/\/www.systemdeveloper.nl\/tech\/","name":"www.systemdeveloper.nl","description":"NextGen IT","publisher":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.systemdeveloper.nl\/tech\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/www.systemdeveloper.nl\/tech\/#organization","name":"www.systemdeveloper.nl","url":"https:\/\/www.systemdeveloper.nl\/tech\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/www.systemdeveloper.nl\/tech\/#\/schema\/logo\/image\/","url":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/qt-logo.png","contentUrl":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/qt-logo.png","width":1346,"height":1230,"caption":"www.systemdeveloper.nl"},"image":{"@id":"https:\/\/www.systemdeveloper.nl\/tech\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/quan.tora.16"]},{"@type":"Person","@id":"https:\/\/www.systemdeveloper.nl\/tech\/#\/schema\/person\/5760c2ed5300c56d8ef01dfb00a9763b","name":"John Timmer","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/cropped-D6E27035-6864-4270-8D72-0D8C0C59F370-96x96.jpeg","url":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/cropped-D6E27035-6864-4270-8D72-0D8C0C59F370-96x96.jpeg","contentUrl":"https:\/\/www.systemdeveloper.nl\/tech\/wp-content\/uploads\/2024\/11\/cropped-D6E27035-6864-4270-8D72-0D8C0C59F370-96x96.jpeg","caption":"John Timmer"},"sameAs":["https:\/\/www.systemdeveloper.nl\/tech"],"url":"https:\/\/www.systemdeveloper.nl\/tech\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/posts\/99","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/comments?post=99"}],"version-history":[{"count":3,"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/posts\/99\/revisions"}],"predecessor-version":[{"id":306,"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/posts\/99\/revisions\/306"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/media\/101"}],"wp:attachment":[{"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/media?parent=99"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/categories?post=99"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.systemdeveloper.nl\/tech\/wp-json\/wp\/v2\/tags?post=99"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}