{"id":99001,"date":"2023-11-13T00:03:07","date_gmt":"2023-11-13T00:03:07","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=99001"},"modified":"2024-11-14T22:09:31","modified_gmt":"2024-11-14T22:09:31","slug":"getting-started-with-mongodb","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/databases\/nosql\/getting-started-with-mongodb\/","title":{"rendered":"Getting Started with MongoDB"},"content":{"rendered":"<p><strong>This article is part of Robert Sheldon's continuing series on Mongo DB. To see all of the items in the series, <a href=\"https:\/\/www.red-gate.com\/simple-talk\/collections\/robert-sheldon-ongoing-mongodb-primer\/\">click here<\/a>.<\/strong><\/p>\n\n<p>MongoDB is a scalable database management system that stores data as documents in a collection, rather than as rows in a table, such as you\u2019d find in a relational database system. A document is an object made up of one or more field and value pairs that contain related data. A field\u2019s value can be one of a variety of data types, including arrays or embedded documents. Support for such data types eliminates the need to create the type of complex joins used in relational database.<\/p>\n<p>MongoDB is a NoSQL database system. The acronym NoSQL, which means \u201cnot only SQL,\u201d is a term used to describe various types of non-relational databases. NoSQL databases offer more flexibility and greater scalability than relational databases and are often better suited to many of today\u2019s modern workloads. A variety of NoSQL databases are in use today, including document databases, graph databases, wide-column stores, and key-value stores.<\/p>\n<p>MongoDB is considered a type of document database because data is stored as documents. A MongoDB document is similar to a JavaScript Object Notation (JSON) object, a lightweight structure made up of unordered name\/value pairs. MongoDB documents are simple to read and understand, yet they can support complex requirements, in part because they can be structured differently within the same collection. This allows a MongoDB database to hold structured data (like a relational database), but also semi-structured and even unstructured data.<\/p>\n<p>MongoDB comes in three editions:<\/p>\n<ul>\n<li><strong>MongoDB Atlas.<\/strong> A managed service for deploying MongoDB in the cloud. The service includes a free tier, which is ideal for trying out and learning about MongoDB.<\/li>\n<li><strong>MongoDB Community.<\/strong> An on-premises solution that you can download and install for free. It is available for Linux, macOS, and Windows and can be installed within a Docker container. Like the free tier on MongoDB Atlas, the Community edition is ideal for trying out and learning about MongoDB.<\/li>\n<li><strong>MongoDB Enterprise.<\/strong> An on-premises, subscription-based solution that includes advanced management and security features for supporting mission-critical workloads. Like the Community edition, the Enterprise edition is available for Linux, macOS, Windows, and Docker.<\/li>\n<\/ul>\n<p>The basic database functionality is the same regardless of which edition you\u2019re using. If you\u2019re new to MongoDB, you can take advantage of one of the free versions to start exploring the MongoDB environment and learn what it takes to work with document data.<\/p>\n<p>To help with this process, this article introduces you to MongoDB and shows you how get started. The article explains how to connect to MongoDB, create a database and collection, and add a few documents. This article is the first in a series on MongoDB that explores the various ways you can manage and interact with the document data.<\/p>\n<p>For the examples in this article, I use the MongoDB Atlas free tier. I think this is a good way to get to know the platform if you\u2019re new to MongoDB and want to get a sense of how a document database works. This way, you can learn about MongoDB without having to install it on your system or make any long-term commitments. You can also easily access your MongoDB databases from multiple systems.<\/p>\n<p>To interact with MongoDB Atlas, I used MongoDB Compass, an on-premises GUI that you can download for free from the <a href=\"https:\/\/www.mongodb.com\/try\/download\/compass\">MongoDB site<\/a>. MongoDB Compass is available for Linux, Windows, and macOS (x86_64 or ARM64). Although you can also use the MongoDB Shell to interact with MongoDB, I think the GUI is a good way to start learning about MongoDB. Compass also comes with the MongoDB Shell embedded directly into the interface, so you get the best of both worlds.<\/p>\n<h2>Connecting to MongoDB Atlas from MongoDB Compass<\/h2>\n<p>If you want to follow along with the examples in this article (and those in the rest of the series), you\u2019ll need to set up a MongoDB Atlas account and create your first cluster. You\u2019ll also need to install MongoDB Compass on your system and make sure it\u2019s up and running. I installed Compass on a Mac computer, but you can run it on any of the supported platforms.<\/p>\n<p>To set up MongoDB Atlas, you\u2019ll need to head to the <a href=\"https:\/\/www.mongodb.com\/atlas\">Atlas website<\/a> and register for the service. You should then follow the online instructions to set up your first cluster, referring to the Atlas documentation as necessary. In the next section I will go though the steps that I took as well.<\/p>\n<p>Atlas organizes its services based on a specific hierarchy: Organization &gt; Project &gt; Cluster. However, this hierarchy might not be readily apparent as you step through the process of creating your first cluster. In some cases, Atlas refers to this process as a <em>deployment,<\/em> which can add to the confusion.<\/p>\n<p>Regardless of how you get there, your main goal is to set up your first cluster so you can connect to it from MongoDB Compass. For this article, I set up my Atlas environment with an organization named <strong>org1<\/strong>, a project named <strong>proj2<\/strong>, and a cluster named <strong>clust1<\/strong>. The following figure shows the Atlas environment after I set up the <strong>clust1<\/strong> cluster.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2910\" height=\"1536\" class=\"wp-image-99002\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-1.png\" \/><\/p>\n<p>You can use whatever names you want when setting up your Atlas environment. If you use names different from mine, some of the labels you\u2019ll see in the screenshots will not be the same as on your system, but this is a minor issue.<\/p>\n<p>When first setting up your Atlas environment, you\u2019ll be prompted to create a deployment, which steps your through the process of setting up your first cluster. During this process, be sure to select the <strong>M0<\/strong> tier, which is the free service tier available for learning about MongoDB.<\/p>\n<p>You\u2019ll also need to select a provider (AWS, Google Cloud, or Azure) and a region, such as N. Virginia (us-east-1) or Tokyo (ap-northeast-1). Of course, you should pick a region as near to you as possible. Just make sure you select the <strong>M0<\/strong> tier before choosing the provider and region because the free tier is not available to every location.<\/p>\n<p>After you define the basic configuration, you\u2019ll be prompted to create a database user account. This account is different from your MongoDB Atlas account, so you should provide a new username and password. Keep the password handy because you\u2019ll need it again shortly.<\/p>\n<p>After you create the database account, you must then add the IP address of the computer where you\u2019ll be running MongoDB compass. If it\u2019s the same computer you\u2019re using to set up your Atlas environment, simply click <strong>Add My Current IP Address<\/strong>. Otherwise, you\u2019ll need to specify the correct IP address. If you have connection issues, this is typically a good first place to start since ISP\u2019s sometimes change addresses without you expecting it.<\/p>\n<p>Note: I\u2019m providing you with only an overview of how to set up your MongoDB Atlas environment. Be sure to carefully read the available documentation and follow the online prompts so you set up your cluster correctly, especially when it comes to selecting the select the <strong>M0<\/strong> service tier. This section is meant only to offer you some pointers for getting started. It is by no means an exhaustive Atlas tutorial.<\/p>\n<p>I would also not consider this method of setting up your cluster good enough for private\/personal information.<\/p>\n<p>After you\u2019ve completed setting up your cluster, you should be taken to the <strong>Database<\/strong> <strong>Deployments<\/strong> screen, which might be only an abbreviated version of the one shown in the figure above. On either version of the screen, there should be a <strong>Connect<\/strong> button, which provides access to the connection string you\u2019ll need for MongoDB Compass. When you click the <strong>Connect<\/strong> button, you\u2019ll be presented with the <strong>Connect to<\/strong> dialog box, as shown in the following figure.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1636\" height=\"1684\" class=\"wp-image-99003\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-2.png\" \/><\/p>\n<p>In this dialog box, click the <strong>Compass<\/strong> option and, on the next screen, copy the connection string to your clipboard. The connection string includes the username of the database account you just created, followed by a colon and the <code>&lt;password&gt;<\/code> placeholder. You\u2019ll need to replace the placeholder with the actual password.<\/p>\n<p>If you haven\u2019t already done so, launch MongoDB Compass, which should open to the <strong>New<\/strong> <strong>Connection<\/strong> screen, shown in the following figure. In the URI text box, delete the default connection string, paste in the connection string from the clipboard, and replace the <code>&lt;password&gt;<\/code> placeholder with your password.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2864\" height=\"1092\" class=\"wp-image-99004\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-3.png\" \/><\/p>\n<p>Next, click the edit icon (pencil) to the right of the <strong>New<\/strong> <strong>Connection<\/strong> title. You need to hover near the title to see the icon. In the <strong>Edit favorite<\/strong> dialog box, type a name for the connection, select a color, if desired, and click <strong>Save<\/strong>. (On my system, I named the connection <strong>connect1<\/strong> and selected dark green as the color.) Now click <strong>Connect<\/strong>.<\/p>\n<p>This should connect you to your Atlas cluster and display the <strong>My<\/strong> <strong>Queries<\/strong> tab in the Compass main window. The left panel should also show two databases nodes: <strong>admin<\/strong> and <strong>local<\/strong>. MongoDB automatically creates these databases for administrative purposes. You do not need to be concerned with them for now. Just don\u2019t mess with them.<\/p>\n<p>After you\u2019ve established a connection to Atlas, you can sign out of the Atlas service through your browser. Your cluster will continue to run and be available to Compass, where you can add your first database and collection.<\/p>\n<p>If for some reason, you don\u2019t want to create an Atlas account, you can install the MongoDB Community edition on your local computer. I used Homebrew to install it on my Mac, but you\u2019ll need to check the MongoDB documentation for your system.<\/p>\n<p>Once you\u2019ve installed the Community edition, you can create a connection in Compass that points to your MongoDB instance. If Compass and MongoDB are running on the same system, should be able to use the default connection string (<code>mongodb:\/\/localhost:27017<\/code>) when you create your connection in Compass. Refer to the MongoDB documentation for more information.<\/p>\n<p>Whether you connect to Atlas or the Community edition, the process of working MongoDB data is the same. This means you\u2019ll still be able to follow along with the examples in the rest of the article, as well as with those in the rest of the series, because the core functionality is the same in both environments.<\/p>\n<h2>Creating a MongoDB database and a collection<\/h2>\n<p>Now that we\u2019ve gotten through the setup process, we can move onto something more interesting, which is to create a database and a collection. In MongoDB, a database is simply a container for one or more collections. A collection, in turn, is a structure for holding zero or more documents, similar to a table in a relational database.<\/p>\n<p>Normally, the documents in a collection are related in some way, like rows in a relational table, but this is not an absolute requirement in MongoDB. In fact, the documents don\u2019t even need to adhere to the same structure like a table does. The ability for documents to have different structures within the same collection is a big part of MongoDB\u2019s flexibility. That said, MongoDB does let you define validation rules to enforce a data structure on a collection\u2019s documents, something I\u2019ll be discussing later in this series.<\/p>\n<p>With that in mind, let\u2019s returns to MongoDB Compass. When you click the <strong>Databases<\/strong> node in the left panel, Compass displays the current databases in the main window, as shown in the following figure.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2138\" height=\"1278\" class=\"wp-image-99005\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-4.png\" \/><\/p>\n<p>Currently, only the <code>admin<\/code> and <code>local<\/code> databases should exist, unless you already created other databases. Even if you have, we\u2019re now going to add our own database and collection, which we\u2019ll do in a single step. When you add a database in Compass, you must add a collection at the same time.<\/p>\n<p>Start by clicking the <strong>Create<\/strong> <strong>database<\/strong> button (plus sign) to the right of the <strong>Databases<\/strong> node in the left panel. This launches the <strong>Create<\/strong> <strong>Database<\/strong> dialog box, shown in the following figure.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1232\" height=\"954\" class=\"wp-image-99006\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-5.png\" \/><\/p>\n<p>I\u2019ve already filled in the database name (<strong>db1<\/strong>) and collection name (<strong>col1<\/strong>), but you can name them whatever you want. For now, we\u2019re going to create a basic collection. Later in the series, we\u2019ll discuss other collection types.<\/p>\n<p>After you\u2019ve provided the database and collection names, click <strong>Create Database<\/strong>. MongoDB will create both the database and collection and return you to the main Compass window. The <strong>db1<\/strong> database node is now be listed in the left panel, along with the <strong>col1<\/strong> collection node, which should be selected, as shown in the following figure.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2132\" height=\"1056\" class=\"wp-image-99007\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-6.png\" \/><\/p>\n<p>Not surprisingly, the main Compass window indicates that the collection contains no data, but now that you have the database and collection in place, you can start adding documents, which is our next step.<\/p>\n<h2>Adding documents to a MongoDB collection<\/h2>\n<p>In MongoDB, a document is a data structure that contains one of more sets of field\/value pairs. The pairs are separated by commas and enclosed in a set of curly brackets. For example, the following code represents a simple document that contains three field\/value pairs:<\/p>\n<pre class=\"lang:none theme:none\">{ \"state\": \"Oregon\", \"city\": \"Portland\", \"zip\": 97201 }<\/pre>\n<p>The first field\/value pair is <code>\"state\": \"Oregon\"<\/code>. The field\u2019s name is <code>state<\/code>, and its value is <code>Oregon<\/code>. The other two field\/value pairs work much the same way. The only difference is that the final value is not enclosed in quotation marks because it is being defined as an integer, not a string. MongoDB infers the data types based on the values you provide. For example, you might want to save the <code>zip<\/code> field as a string value, rather than integer, in which case, you would enclose it in quotes. In addition, MongoDB provides methods for overriding the default behavior so you can define a field with a specific data type.<\/p>\n<p>Although this is a fairly basic document, it gives you an idea of how documents are structured. Later in the series, I\u2019ll go into the document structure in much more detail. Until then, I suggest that you look around for examples of different types of MongoDB documents. You\u2019ll find that even the more complex documents follow the same underlying structure of field\/value pairs.<\/p>\n<p>Now let\u2019s add this document to the <code>col1<\/code> collection. In MongoDB Compass, make sure that the collection is selected in the left panel. Then, in the main window, click the <strong>Add<\/strong> <strong>Data<\/strong> drop-down arrow and click <strong>Insert document<\/strong>. In the <strong>Insert<\/strong> <strong>Document<\/strong> dialog box, delete the existing text and type or paste the above code. The dialog box should now look like the following figure.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1230\" height=\"996\" class=\"wp-image-99008\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-7.png\" \/><\/p>\n<p>After you\u2019ve typed in the document, click <strong>Insert<\/strong>. MongoDB will add the document to the <code>col1<\/code> collection and return you to the main Compass window, with the <strong>col1<\/strong> collection node still selected. The document should now be listed in the main window, as shown in the following figure.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1614\" height=\"768\" class=\"wp-image-99009\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-8.png\" \/><\/p>\n<p>Notice that the document contains the <code>_id<\/code> field. All MongoDB documents must include this field. It acts like a primary key that uniquely identifies the document within the collection. If you don\u2019t supply the <code>_id<\/code> field, MongoDB adds it automatically and assigns a unique identifier as its value, which is configured with the <code>ObjectId<\/code> data type.<\/p>\n<p>In some cases, you might want to provide your own <code>_id<\/code> field, such as when importing the data from another data store. For example, the following document is the same as the previous one, except that it now includes the <code>_id<\/code> field:<\/p>\n<pre class=\"lang:none theme:none\">{ \"_id\": 10001, \"state\": \"Oregon\", \"city\": \"Portland\", \"zip\": 97201 }<\/pre>\n<p>If you were to add this document to a collection, MongoDB would preserve the <code>_id<\/code> field that you defined and would not generate a unique identifier. However, if the collection already contains a document with the same <code>_id<\/code> value, MongoDB will return an error instead of adding the document. A document\u2019s <code>_id<\/code> value must always be unique within a collection. Even if MongoDB is generating the <code>_id<\/code> values, it would never add a duplicate value.<\/p>\n<p>In Compass, you can add multiple documents to a collection at one time, taking the same approach as with a single document. However, you must enclose the documents in square brackets (creating what is in effect an array) and separate the documents with commas. For example, the following code defines three documents:<\/p>\n<pre class=\"lang:none theme:none\">[\n  { \"state\": \"California\", \"city\": \"San Francisco\", \"zip\": 94102 },\n  { \"state\": \"Colorado\", \"city\": \"Denver\", \"zip\": 80204, \"nickname\": \"Mile High City\" },\n  { \"state\": \"Washington\", \"city\": \"Seattle\", \"zip\": 98101, \"population\": \"733,919 (2021)\" }\n]<\/pre>\n<p>To add these documents, follow the same steps as before. Click the <strong>Add<\/strong> <strong>Data<\/strong> drop-down arrow and click <strong>Insert document<\/strong>. In the <strong>Insert<\/strong> <strong>Document<\/strong> dialog box, delete the existing content, type or paste the above code, and click <strong>Insert<\/strong>. MongoDB adds your documents to the collection.<\/p>\n<p>You might have noticed that each document has a slightly different structure. For example, the second document includes a <code>nickname<\/code> field, and the third document includes a <code>population<\/code> field. MongoDB lets you create documents with different structures to meet you specific business needs.<\/p>\n<h2>Viewing documents in a MongoDB collection<\/h2>\n<p>After you add documents to a collection, you can view them in the main Compass window, as you saw in the previous section. For example, the following figure shows the main window with the additional three documents.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1950\" height=\"1108\" class=\"wp-image-99010\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-9.png\" \/><\/p>\n<p>This view of the data\u2014referred to as List View\u2014is only one of three views that Compass offers. List View is the default view and provides a simple format for scrolling through the documents and viewing their content. In addition, you can expand embedded documents and arrays, when they exist.<\/p>\n<p>You can also display the documents in JSON View or Table View. To select a different view, click the appropriate button near the upper-right corner of the data display area. The middle button switches to JSON View, which displays the documents as properly formatted JSON objects, as shown in the following figure.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2058\" height=\"1304\" class=\"wp-image-99011\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-10.png\" \/><\/p>\n<p>In JSON View, the value for the auto-generated <code>_id<\/code> field is treated an embedded document with a single <code>$oid<\/code> field. The <code>$oid<\/code> field is used in place of <code>ObjectId<\/code> when rendering the data as JSON.<\/p>\n<p>The third view that Compass supports is Table View, which displays the data in a tabular format similar to a spreadsheet or table in a relational database. You can get to this view by clicking the right button in the upper-right corner of the data area. The following figure shows the four documents in Table View. If a document does not contain a field that exists in another document, Compass displays <strong>No<\/strong> <strong>field<\/strong> as the field value.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2640\" height=\"554\" class=\"wp-image-99012\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/10\/word-image-99001-11.png\" \/><\/p>\n<p>There is much more you can do in each view than what we\u2019ve covered here. For example, you can edit, copy, clone, or remove a document. As we progress through this series, I\u2019ll be covering a wide range of topics about the various ways you can work with MongoDB documents, using both the Compass GUI and the embedded MongoDB Shell.<\/p>\n<p>In the meantime, feel free to delete the collection and database at any time, unless you want to play with them for a while. When you\u2019re ready to delete them, click the options button (ellipsis) to the right of the <strong>col1<\/strong> collection node in the left panel and then click <strong>Drop<\/strong> <strong>collection<\/strong>. In the <strong>Drop<\/strong> <strong>Collections<\/strong> dialog box, type the collection name in the text box and then click <strong>Drop Collection<\/strong>. When you drop a collection that is the only one in the database, MongoDB also drops the database.<\/p>\n<h2>Getting started with MongoDB<\/h2>\n<p>In this article, I introduced you to the MongoDB platform and provided an overview of how to connect to MongoDB Atlas from the Compass interface. You also learned how to create a database and collection and add a few documents to that collection. I\u2019m hoping that what I\u2019ve provided here will help you get started with MongoDB so you have a basic foundation on which to build as we progress through this series.<\/p>\n<p>In the articles to follow, I will expand on many of the concepts I introduced here and dig into a number of other ones. As part of this process, we\u2019ll be going a lot deeper into the document structures and the various ways you can query those documents. Queries are, in fact, where you\u2019ll likely be spending most of you time with MongoDB, so the better you understand the basics, the better prepared you\u2019ll be for moving on to more advanced topics.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MongoDB is a scalable database management system that stores data as documents in a collection, rather than as rows in a table, such as you\u2019d find in a relational database system. A document is an object made up of one or more field and value pairs that contain related data. A field\u2019s value can be&#8230;&hellip;<\/p>\n","protected":false},"author":221841,"featured_media":104573,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[53,143535],"tags":[159050,5618,159226],"coauthors":[6779],"class_list":["post-99001","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-featured","category-nosql","tag-flywaymongodb","tag-mongodb","tag-mongodbseriesrobertsheldon"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/99001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/221841"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=99001"}],"version-history":[{"count":3,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/99001\/revisions"}],"predecessor-version":[{"id":104574,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/99001\/revisions\/104574"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media\/104573"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=99001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=99001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=99001"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=99001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}