

{"id":1722,"date":"2012-10-22T14:50:30","date_gmt":"2012-10-22T19:50:30","guid":{"rendered":"http:\/\/rud.is\/b\/?p=1722"},"modified":"2017-04-02T22:51:15","modified_gmt":"2017-04-03T03:51:15","slug":"get-an-r-data-frame-from-a-mongodb-query","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/","title":{"rendered":"Get an R Data Frame from a MongoDB Query"},"content":{"rendered":"<p>There&#8217;s a <span class=\"removed_link\" title=\"http:\/\/cnub.ddns.net\/WikiDefault.aspx?Page=rmongodb&amp;AspxAutoDetectCookieSupport=1#FAQ\">good FAQ<\/span> on how to do the MongoDB query -> R data frame but I wanted to post a more complete example that included the database connection and query setup since I suspect there are folks new to Mongo who would appreciate the end-to-end view. The code is fully annotated with comments, and I&#8217;ll caveat that this was for pulling data from my solar radiation sensor (it provides some context for the query and values).<\/p>\n<pre lang=\"rsplus\">library(rmongodb)\r\nlibrary(chron) # NOTE: you don't need this for Mongo; it's for the sensor readings plot\r\n\r\n# connect to mongodb server on host and connect to db\r\nmongo = mongo.create(host=\"MONGODB_HOST\",db=\"DATABASE_NAME\")\r\n\r\nif (mongo.is.connected(mongo)) {\r\n  \r\n  # this sets up the query (there are other \"buffer.append\u2026\" functions\r\n  today = format(Sys.time(), \"%Y-%m-%d\")\r\n  buf = mongo.bson.buffer.create()\r\n  mongo.bson.buffer.append.string(buf,\"date\",today)\r\n  query = mongo.bson.from.buffer(buf)\r\n\r\n  # run the query and get total results & the starting db cursor  \r\n  todays.readings.count = mongo.count(mongo,\"solar.readings\",query)\r\n  todays.readings.cursor = mongo.find(mongo,\"solar.readings\",query)\r\n  \r\n  # setup some vectors to hold our results  \r\n  time = vector(\"character\",todays.readings.count)\r\n  lux = vector(\"numeric\",todays.readings.count)\r\n  full = vector(\"numeric\",todays.readings.count)\r\n  IR = vector(\"numeric\",todays.readings.count)\r\n  \r\n  i = 1\r\n\r\n  # iterate over the results with the cursor    \r\n  while (mongo.cursor.next(todays.readings.cursor)) {\r\n    \r\n    # get the values of the current record\r\n    cval = mongo.cursor.value(todays.readings.cursor)\r\n    \r\n    # split it out into our vectors    \r\n    time[i] = mongo.bson.value(cval,\"time\")\r\n    full[i] = mongo.bson.value(cval,\"Full\")\r\n    lux[i] = mongo.bson.value(cval,\"Lux\")\r\n    IR[i] = mongo.bson.value(cval,\"IR\")\r\n    \r\n    i = i + 1\r\n    \r\n  }\r\n  \r\n  # packages all our values up into a data frame  \r\n  df = as.data.frame(list(time=time,full=full,lux=lux,IR=IR))\r\n\r\n  # (for my wx data, I need 'time' as an actual time value)  \r\n  df$Time = times(df$time)\r\n  df$time = NULL\r\n\r\n  par(mfrow=c(3,1))\r\n  plot(df$full~df$Time,type=\"l\",col=\"blue\",lwd=\"1\",xlab=\"\",ylab=\"Full Spectrum\",main=paste(today,\" Solar Radiation Readings\"))\r\n  plot(df$lux~df$Time,type=\"l\",col=\"blue\",lwd=\"1\",xlab=\"\",ylab=\"Lux (calculated)\")\r\n  plot(df$IR~df$Time,type=\"l\",col=\"blue\",lwd=\"1\",xlab=\"Time\",ylab=\"IR\")\r\n  par(mfrow=c(1,1))\r\n  \r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>There&#8217;s a good FAQ on how to do the MongoDB query -> R data frame but I wanted to post a more complete example that included the database connection and query setup since I suspect there are folks new to Mongo who would appreciate the end-to-end view. The code is fully annotated with comments, and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[63,671,91],"tags":[],"class_list":["post-1722","post","type-post","status-publish","format-standard","hentry","category-development","category-mongodb-2","category-r"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Get an R Data Frame from a MongoDB Query - rud.is<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Get an R Data Frame from a MongoDB Query - rud.is\" \/>\n<meta property=\"og:description\" content=\"There&#8217;s a good FAQ on how to do the MongoDB query -&gt; R data frame but I wanted to post a more complete example that included the database connection and query setup since I suspect there are folks new to Mongo who would appreciate the end-to-end view. The code is fully annotated with comments, and [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2012-10-22T19:50:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-04-03T03:51:15+00:00\" \/>\n<meta name=\"author\" content=\"hrbrmstr\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hrbrmstr\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/10\\\/22\\\/get-an-r-data-frame-from-a-mongodb-query\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/10\\\/22\\\/get-an-r-data-frame-from-a-mongodb-query\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Get an R Data Frame from a MongoDB Query\",\"datePublished\":\"2012-10-22T19:50:30+00:00\",\"dateModified\":\"2017-04-03T03:51:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/10\\\/22\\\/get-an-r-data-frame-from-a-mongodb-query\\\/\"},\"wordCount\":88,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"articleSection\":[\"Development\",\"MongoDB\",\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/10\\\/22\\\/get-an-r-data-frame-from-a-mongodb-query\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/10\\\/22\\\/get-an-r-data-frame-from-a-mongodb-query\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/10\\\/22\\\/get-an-r-data-frame-from-a-mongodb-query\\\/\",\"name\":\"Get an R Data Frame from a MongoDB Query - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"datePublished\":\"2012-10-22T19:50:30+00:00\",\"dateModified\":\"2017-04-03T03:51:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/10\\\/22\\\/get-an-r-data-frame-from-a-mongodb-query\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/10\\\/22\\\/get-an-r-data-frame-from-a-mongodb-query\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2012\\\/10\\\/22\\\/get-an-r-data-frame-from-a-mongodb-query\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get an R Data Frame from a MongoDB Query\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/\",\"name\":\"rud.is\",\"description\":\"&quot;In God we trust. All others must bring data&quot;\",\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rud.is\\\/b\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\",\"name\":\"hrbrmstr\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"width\":460,\"height\":460,\"caption\":\"hrbrmstr\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\"},\"description\":\"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7\",\"sameAs\":[\"http:\\\/\\\/rud.is\"],\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/author\\\/hrbrmstr\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Get an R Data Frame from a MongoDB Query - rud.is","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:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/","og_locale":"en_US","og_type":"article","og_title":"Get an R Data Frame from a MongoDB Query - rud.is","og_description":"There&#8217;s a good FAQ on how to do the MongoDB query -> R data frame but I wanted to post a more complete example that included the database connection and query setup since I suspect there are folks new to Mongo who would appreciate the end-to-end view. The code is fully annotated with comments, and [&hellip;]","og_url":"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/","og_site_name":"rud.is","article_published_time":"2012-10-22T19:50:30+00:00","article_modified_time":"2017-04-03T03:51:15+00:00","author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Get an R Data Frame from a MongoDB Query","datePublished":"2012-10-22T19:50:30+00:00","dateModified":"2017-04-03T03:51:15+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/"},"wordCount":88,"commentCount":0,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"articleSection":["Development","MongoDB","R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/","url":"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/","name":"Get an R Data Frame from a MongoDB Query - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"datePublished":"2012-10-22T19:50:30+00:00","dateModified":"2017-04-03T03:51:15+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2012\/10\/22\/get-an-r-data-frame-from-a-mongodb-query\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Get an R Data Frame from a MongoDB Query"}]},{"@type":"WebSite","@id":"https:\/\/rud.is\/b\/#website","url":"https:\/\/rud.is\/b\/","name":"rud.is","description":"&quot;In God we trust. All others must bring data&quot;","publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rud.is\/b\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886","name":"hrbrmstr","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","width":460,"height":460,"caption":"hrbrmstr"},"logo":{"@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1"},"description":"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7","sameAs":["http:\/\/rud.is"],"url":"https:\/\/rud.is\/b\/author\/hrbrmstr\/"}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p23idr-rM","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":2618,"url":"https:\/\/rud.is\/b\/2013\/09\/04\/nizdos\/","url_meta":{"origin":1722,"position":0},"title":"nizdos &#8211; Nest Thermometer Notifications And Data Logging In Python","author":"hrbrmstr","date":"2013-09-04","format":false,"excerpt":"I've had a Nest thermometer for a while now and it's been an overall positive experience. It's given me more visibility into our heating\/cooling system usage, patterns and preferences; plus, it actually saved us money last winter. We try to avoid running the A\/C during the summer, and it would\u2026","rel":"","context":"In &quot;Development&quot;","block_context":{"text":"Development","link":"https:\/\/rud.is\/b\/category\/development\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":96,"url":"https:\/\/rud.is\/b\/2011\/02\/12\/web-development-is-dangerous\/","url_meta":{"origin":1722,"position":1},"title":"&#8220;Web Development Is Dangerous&#8221;","author":"hrbrmstr","date":"2011-02-12","format":false,"excerpt":"Those were the words that greeted me within five minutes of checking out the Flask microframework for Python web applications. I feel compelled to inline those four, short paragraphs: I\u2019m not joking. Well, maybe a little. If you write a web application, you are probably allowing users to register and\u2026","rel":"","context":"In &quot;Information Security&quot;","block_context":{"text":"Information Security","link":"https:\/\/rud.is\/b\/category\/information-security\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4753,"url":"https:\/\/rud.is\/b\/2016\/12\/20\/sergeant-a-r-boot-camp-for-apache-drill\/","url_meta":{"origin":1722,"position":2},"title":"sergeant : An R Boot Camp for Apache Drill","author":"hrbrmstr","date":"2016-12-20","format":false,"excerpt":"I recently mentioned that I've been working on a development version of an Apache Drill R package called sergeant. Here's a lifted \"TLDR\" on Drill: Drill supports a variety of NoSQL databases and file systems, including HBase, MongoDB, MapR-DB, HDFS, MapR-FS, Amazon S3, Azure Blob Storage, Google Cloud Storage, Swift,\u2026","rel":"","context":"In &quot;Apache Drill&quot;","block_context":{"text":"Apache Drill","link":"https:\/\/rud.is\/b\/category\/apache-drill\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6127,"url":"https:\/\/rud.is\/b\/2017\/07\/27\/reading-pcap-files-with-apache-drill-and-the-sergeant-r-package\/","url_meta":{"origin":1722,"position":3},"title":"Reading PCAP Files with Apache Drill and the sergeant R Package","author":"hrbrmstr","date":"2017-07-27","format":false,"excerpt":"It's no secret that I'm a fan of Apache Drill. One big strength of the platform is that it normalizes the access to diverse data sources down to ANSI SQL calls, which means that I can pull data from parquet, Hie, HBase, Kudu, CSV, JSON, MongoDB and MariaDB with the\u2026","rel":"","context":"In &quot;Apache Drill&quot;","block_context":{"text":"Apache Drill","link":"https:\/\/rud.is\/b\/category\/apache-drill\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2364,"url":"https:\/\/rud.is\/b\/2013\/03\/19\/my-picks-from-pycon2013\/","url_meta":{"origin":1722,"position":4},"title":"My Picks From #PyCon2013","author":"hrbrmstr","date":"2013-03-19","format":false,"excerpt":"While you can (and should) view [all the presentations](https:\/\/speakerdeck.com\/pyconslides) from #PyCon2013, here are my picks for the ones that interested me the most, as they focus on scaling, mapping, automation (both web & electronics) and data analysis: - [Chef: Why you should automate your web infrastructure](https:\/\/speakerdeck.com\/pyconslides\/chef-why-you-should-automate-your-web-infrastructure-by-kate-heddleston) by Kate Heddleston -\u2026","rel":"","context":"In &quot;Big Data&quot;","block_context":{"text":"Big Data","link":"https:\/\/rud.is\/b\/category\/big-data\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11712,"url":"https:\/\/rud.is\/b\/2019\/01\/02\/apache-drill-1-15-0-sergeant-0-8-0-pcapng-support-proper-column-types-mounds-of-new-metadata\/","url_meta":{"origin":1722,"position":5},"title":"Apache Drill 1.15.0 + sergeant 0.8.0 = pcapng Support, Proper Column Types &#038; Mounds of New Metadata","author":"hrbrmstr","date":"2019-01-02","format":false,"excerpt":"Apache Drill is an innovative distributed SQL engine designed to enable data exploration and analytics on non-relational datastores [...] without having to create and manage schemas. [...] It has a schema-free JSON document model similar to MongoDB and Elasticsearch; [a plethora of APIs, including] ANSI SQL, ODBC\/JDBC, and HTTP[S] REST;\u2026","rel":"","context":"In &quot;Apache Drill&quot;","block_context":{"text":"Apache Drill","link":"https:\/\/rud.is\/b\/category\/apache-drill\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/1722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/comments?post=1722"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/1722\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=1722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=1722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=1722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}