Elasticsearch date range query on date field with added buffer days - date

I have to get records (training) wherein I have a start_date, and I have to get all records that have not yet ended. So I don't have an end_date field, but just the start date, so end_date is start_date + 60 days.
So what I need comprises all results that have "start_date" less than equal to "now" and "start_date + 60 days" greater than equal to "now" i.e. "now" is between start_date and "start_date + 60 days".
So here's what I am trying. But I know "on_demand_start_date+60d" is incorrect. Can anyone help, how can this be done?
"must": [
{
"range": {
"on_demand_start_date+60d": {
"gte": "now"
}
}
},
{
"range": {
"on_demand_start_date": {
"lte": "now"
}
}
}
]
Below is a sample document:
{
"_index": "cdc_sse_content",
"_type": "doc",
"_id": "cdc_sse_publish_1140",
"_score": null,
"_source": {
"country": "us",
"event_source_time_zone": "",
"source": "CVENT",
"iSAPIRecord": true,
"index_type": "content",
"content_title": "***Test - API March 04 - 1",
"event_technology": [
"Cloud & Computing",
"Collaboration",
"Services (CX)"
],
"language_code": "en",
"application_name": "event-selector",
"event_type": "Hybrid event",
"event_region": [
"North America"
],
"event_time_zone": "UTC",
"cdc_page_url": "https://www.google.com?EID=<95929>",
"event_end_date": "2022-02-05T01:00",
"event_filters": "",
"created_by": "shaiwsha",
"live_stream_end_date": null,
"marketing_owner": "tparida",
"event_on-demand_details": "",
"search_filter_lables": [
"On-demand"
],
"kafka": {
"consumer_group": "sseadmin",
"partition": 0,
"offset": 181002,
"topic": "SSEAdminContentPublished",
"key": null
},
"updated_by": "shaiwsha",
"publish_date": "2022-02-15",
"event_start_date": "2022-02-04T17:00",
"status": "active",
"eid": "95929",
"es_index_fail": false,
"cdc_id": "event-selector_1140",
"event_image_url": "https://www.cisco.com/c/dam/assets/events/i/event-selector/2021/rsa_global_events_page_br_dark_600x400.png",
"description": "Test 1 - This is a sample Hybrid event, that should the event type,Hybrid with City and country displayed. This is a sample In-Person that should disp",
"selector_id": "cdc_event-selector_publish_1140",
"event_livestream_url": "",
"locale": "en_us",
"event_registration_url": "https://sandbox-www.cvent.com/d/p7qgmk/4W?&EID=95929",
"event_live_stream_details": "",
"event_city": "Santa Clara",
"event_registration_and_location_details": "",
"#version": "1",
"event_details": "",
"start_date": "2022-02-07T19:37",
"registration_start_date": "2022-02-18T09:00",
"event_industry": [
"Manufacturing"
],
"event_language": [
"Cantonese",
"Dutch",
"English"
],
"event_state": "California",
"live_stream_start_date": null,
"on_demand_url": "https://www.google.com",
"on_demand": [
"On-demand"
],
"#timestamp": "2022-03-15T07:28:08.821Z",
"registration_end_date": "2022-02-20T09:00",
"recent_search_published_date": "2022-03-10T14:17:30.320Z",
"event_country": "USA",
"featured_event": [
"Featured event"
],
"created_date": "2022-03-10T10:08:05.801Z",
"last_update_ts": "2022/3/10 14:19:5",
"updated_date": "2022-03-10T14:19:05.693Z"
},
"sort": [
1643994000000
]
}

Related

Mongodb aggregate - using $addFields inside a nested array to get true/ false

I've been trying to get data back with an additional field inside a nested array using $addFields.
The data is:
{
"show_id": 1,
"ext1_id": 126790,
"ext2_id": 44275,
"show_title": "Some Big title name",
"poster_url": "https://cdn.something.com/media/cover/o65bBCMVI.jpg",
"description": "show description",
"year": 2021,
"episodes": [
{
"episode_title": "episode title 1",
"episode_number": "01",
"version": null,
"file_id": "BAACAgUAAx0EYN2eLQADKWGOO8WclqGSBG6Kdy0DkRTAbLgGAALMAgACvj7BVnkS-frrNBz8HgQ",
"unique_id": "AgADzAIAAr4-wVY",
"message_id": 41,
"added_by": "bot",
"watched_by": [919205468, 1778357657],
"timestamp": "2021-11-12T15:32:46.172302"
},
{
"episode_title": "Episode title 2",
"episode_number": "02",
"version": null,
"file_id": "BAACAgUAAx0EYN2eLQADKmGOO9QAAZCDz6lonoW1R5zPUM9sVAACOAQAApgFAVdhA3c9xoF0oB4E",
"unique_id": "AgADOAQAApgFAVc",
"message_id": 42,
"added_by": "bot",
"watched_by": [919205468],
"timestamp": "2021-11-12T15:33:01.053049"
},
{
"episode_title": "episode title 3",
"episode_number": "03",
"version": null,
"file_id": "BAACAgUAAx0EYN2eLQADK2GOO9zX4pgK7d1ERd5BeQkvvobSAAKaBAAC2tNJVwYVsJ_OGprTHgQ",
"unique_id": "AgADmgQAAtrTSVc",
"message_id": 43,
"added_by": "bot",
"watched_by": [919205468],
"timestamp": "2021-11-12T15:33:08.862887"
}
],
"alt_titles": ["alt title", "ALT TITLE", "Alt-Title"],
"is_airing": true,
"added_by": "bot",
"timestamp": "2021-11-12T15:32:45.298797"
}
So basically, what I was trying was to add a field user_watched inside the episodes list so that it'll just return True / False by checking if the user_id is present in the watched_by list which is again inside the episodes list.
I also didn't want the watched_by to be retured in the result.
I expected something like this:
{
"show_id": 1,
"ext1_id": 126790,
"ext2_id": 44275,
"show_title": "Some Big title name",
"poster_url": "https://cdn.something.com/media/cover/o65bBCMVI.jpg",
"description": "show description",
"year": 2021,
"episodes": [
{
"episode_title": "episode title 1",
"episode_number": "01",
"version": null,
"file_id": "BAACAgUAAx0EYN2eLQADKWGOO8WclqGSBG6Kdy0DkRTAbLgGAALMAgACvj7BVnkS-frrNBz8HgQ",
"unique_id": "AgADzAIAAr4-wVY",
"message_id": 41,
"added_by": "bot",
"user_watched": true,
"timestamp": "2021-11-12T15:32:46.172302"
},
{
"episode_title": "Episode title 2",
"episode_number": "02",
"version": null,
"file_id": "BAACAgUAAx0EYN2eLQADKmGOO9QAAZCDz6lonoW1R5zPUM9sVAACOAQAApgFAVdhA3c9xoF0oB4E",
"unique_id": "AgADOAQAApgFAVc",
"message_id": 42,
"added_by": "bot",
"user_watched": true,
"timestamp": "2021-11-12T15:33:01.053049"
},
{
"episode_title": "episode title 3",
"episode_number": "03",
"version": null,
"file_id": "BAACAgUAAx0EYN2eLQADK2GOO9zX4pgK7d1ERd5BeQkvvobSAAKaBAAC2tNJVwYVsJ_OGprTHgQ",
"unique_id": "AgADmgQAAtrTSVc",
"message_id": 43,
"added_by": "bot",
"user_watched": true,
"timestamp": "2021-11-12T15:33:08.862887"
}
],
"alt_titles": ["alt title", "ALT TITLE", "Alt-Title"],
"is_airing": true,
"added_by": "bot",
"timestamp": "2021-11-12T15:32:45.298797"
}
I tried this following code in pymongo:
db.data_col.aggregate([
{'$sort' : { 'timestamp' : -1 } },
{'$facet' : {
"metadata": [ { "$count": "total" } ],
"data": [
{'$addFields': {
'episodes.user_watched':
{'$cond': [
{
'$in': [
919209968,
"$episodes.watched_by"
]
},
True,
False
]
}
}},
{ "$skip": offset }, { "$limit": limit },
{ '$project' : {"episodes.watched_by":0} } ,
]
}}
])
but I got every user_watched fields False even if the user_id is present among the watched_by list.
and the returned data.
Query
map on episodes, check if the user(1778357657) in in the watched_by array and add the field true/false
removed the field watched_by
*your query looks different i guess you do more things, but this produces the expected output
*your code didn't work because "$episodes.watched_by", is an array that contains all the watched_by arrays, with $map each array is checked separately.
PlayMongo
aggregate(
[{"$set":
{"episodes":
{"$map":
{"input": "$episodes",
"in":
{"$mergeObjects":
["$$this",
{"user_watched":
{"$in": [1778357657, "$$this.watched_by"]}}]}}}}},
{"$set": {"episodes.watched_by": "$$REMOVE"}}])

Find specific field in array by last date and updating it

I have the document below, and I want to update in exams, the last exam with status "started" (according to date), I need to add to "done" another number
{
"_id": ObjectID("5d2a371cec7eaf00119df614"),
"firstname": "Laura",
"lastname": "Warriner",
"image": "2019-07-14t05:25:23.352z_13.jpg",
"exams": [
{
"examId": "Ba6apmRmz",
"name": "general",
"language": "es",
"version": 2,
"testId": "2000",
"status": [
{
"status": "created",
"date": ISODate("2019-09-08T11:49:42.124Z")
},
{
"status": "started",
"date": ISODate("2019-09-08T11:55:09.873Z"),
"done": [1]
},
{
"status": "started",
"date": ISODate("2019-09-09T12:01:57.886Z"),
"done": [2,3]
},
{
"status": "completed",
"date": ISODate("2019-09-09T12:01:57.886Z")
}
]
}
]
}
Thanks in advance

Not picking Index - when querying Object -> array -> Object in N1QL

Index not picking when using N1QL to match all the customers belonging to a country
Note : the bucket has around 10 lack records, the document is fetching after 50 seconds,
query
select * from `user-prof` WHERE ANY item IN devices.location SATISFIES item.country IN ["US"]
index
CREATE INDEX id_userProfile ON `user-prof` ( ALL ARRAY v.country FOR v IN devices.location END )
Document
[
{
"customers": {
"devices": {
"user": "u1",
"custid": "14CE5534CCE",
"token": "4D5BE85896833148D696A1397C",
"guest": {
"lastActive": null,
"searches": [
]
},
"latt": "6655059908",
"locale": "en-US",
"location": [
{
"city": "Afc",
"country": "IN"
},
{
"city": "Newyork",
"country": "US"
},
{
"city": null,
"country": null
}
],
"long": "4.21787927806",
"notify": {
"Stats": false
},
"tier": null,
"tmz": "EU",
"version": "0.1"
}
}
},
{
"customers": {
"devices": {
"user": "u2",
"custid": "64CE5534CC1E",
"token": "6D5BE85896833148D696A1397C",
"guest": {
"lastActive": null,
"searches": [
]
},
"latt": "6655059908",
"locale": "en-US",
"location": [
{
"city": "Texas",
"country": "US"
},
{
"city": null,
"country": null
}
],
"long": "4.21787927806",
"notify": {
"Stats": false
},
"tier": null,
"tmz": "EU",
"version": "0.1"
}
}
}
You are using Pre 4.6.2 The variable in the ANY clause needs to be same as the variable in the CREATE INDEX (i.e item ,v )
https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/indexing-arrays.html

Multi-level sorting or orderBy in mongoDB

I am working on mongoDB with Laravel using jenssegers . and i am trying to get
documents on sorting based on layout.price.
Is this possible in mongodb with laravel. ?
I am using limit and skip for pagination , so i have to get orderBy or sort direct from Database.
[{
"title": "I am first document",
"design": "mango",
"description": "Loremipsum",
"dimension": [
{
"id": "542549383d1784901000002c"
}
],
"layout": [
{
"id": "542411813d17849810000029",
"price": NumberInt(69000)
}, {
"id": "542411813d17849810000030",
"price": NumberInt(2000)
}
],
"images": [
"uploads/sofa/QRSTU695a6_0.png"
],
"product_type": NumberInt(1),
"updated_at": ISODate("2014-10-08T08:47:26.0Z"),
"created_at": ISODate("2014-09-29T11:13:52.0Z")
},
{
"title": "I am second document",
"design": "mango2",
"description": "Loremipsum",
"dimension": [
{
"id": "542549383d1784901000002d"
}
],
"layout": [
{
"id": "542411813d17849810000031",
"price": NumberInt(80000)
}, {
"id": "542411813d17849810000032",
"price": NumberInt(27000)
}
],
"images": [
"uploads/sofa/QRSTU695a6_0.png"
],
"product_type": NumberInt(1),
"updated_at": ISODate("2014-10-08T08:47:26.0Z"),
"created_at": ISODate("2014-09-29T11:13:52.0Z")
}]

Whats are some real time data sources?

I'm working on a demo on real-time visualization and I'm trying to think out of the box. Looks like any big data real-time demo is on twitter or traffic data. Are there any other options out there that publish real-time data (for free)?
Thanks
Just some thoughts:
Environmental Datasets
As stated by the other comment, have a look to weather, forecast (or similar services).
Space data
What about data from the Universe?
Flights
Here's some real time flight tracking data: the evaluation plan is limited but free.
Social Networks
Twitter Streaming API, Facebook RealTime Updates API (in case you hyave already an app on the social Network), Foursquare
Energy production
Various energy production (real-time and quasi real-time) data.
On these ones probably you have to fiddle around the pages to track the sources of the data, sorry.
Website traffic
Google Analytics RealTime API (for your registered websites)
Money
Bitcoin transactions, Stock Market API
More?
And here and here an "not-so-updated" list of other Real-Time API services (some free, some others not).
Have you considered environmental datasets?
For one, there are near real time (say, hourly or 15m) data on streamflow and water quality. There's also a wealth of weather data served up via NOAA NCDC and APIs. How about some bouy data?
Seeing this post reminded me that there's lots of flight tracking data out there which could be fun to visualize too.
You can find real-time data sources at www.hooksdata.io. Using a query language you can specify what data you need and then add a webhook URL where you want to receive the data or just pull the data anytime.
API DOCS: https://www.hooksdata.io/docs/api/introduction/
Available data sources with examples:
RSS:
Input:
SELECT * FROM RSS('http://feeds.feedburner.com/TechCrunch/')
TwitterUserTimeline:
Input:
SELECT * FROM TwitterUserTimeline('Techstars')
Output:
{ "_entity_type": "tweet", "_id": "tweet_976733289221210112", "contributors": null, "coordinates": null, "created_at": "Thu Mar 22 08:12:17 +0000 2018", "entities": { "hashtags": [ { "indices": [ 121, 132 ], "text": "3Dprinting" } ], "symbols": [], "urls": [], "user_mentions": [ { "id": 117789943, "id_str": "117789943", "indices": [ 3, 19 ], "name": "StanleyBlack&Decker", "screen_name": "StanleyBlkDeckr" }, { "id": 14277276, "id_str": "14277276", "indices": [ 61, 71 ], "name": "techstars", "screen_name": "techstars" } ] }, "favorite_count": 0, "favorited": false, "geo": null, "id": 976733289221210112, "id_str": "976733289221210112", "in_reply_to_screen_name": null, "in_reply_to_status_id": null, "in_reply_to_status_id_str": null, "in_reply_to_user_id": null, "in_reply_to_user_id_str": null, "is_quote_status": false, "lang": "en", "metadata": { "iso_language_code": "en", "result_type": "recent" }, "place": null, "retweet_count": 7, "retweeted": false, "retweeted_status": { "contributors": null, "coordinates": null, "created_at": "Wed Mar 21 20:37:05 +0000 2018", "entities": { "hashtags": [ { "indices": [ 100, 111 ], "text": "3Dprinting" } ], "symbols": [], "urls": [ { "display_url": "twitter.com\/i\/web\/status\/9\u2026", "expanded_url": "https:\/\/twitter.com\/i\/web\/status\/976558334030442498", "indices": [ 117, 140 ], "url": "https:\/\/t.co\/6GWviWvVd1" } ], "user_mentions": [ { "id": 14277276, "id_str": "14277276", "indices": [ 40, 50 ], "name": "techstars", "screen_name": "techstars" } ] }, "favorite_count": 11, "favorited": false, "geo": null, "id": 976558334030442498, "id_str": "976558334030442498", "in_reply_to_screen_name": null, "in_reply_to_status_id": null, "in_reply_to_status_id_str": null, "in_reply_to_user_id": null, "in_reply_to_user_id_str": null, "is_quote_status": false, "lang": "en", "metadata": { "iso_language_code": "en", "result_type": "recent" }, "place": null, "possibly_sensitive": false, "retweet_count": 7, "retweeted": false, "source": "<a href=\"http:\/\/percolate.com\" rel=\"nofollow\">Percolate<\/a>", "text": "Ahead of the Stanley+Techstars program, #Techstars leaders visited us to see how we've incorporated #3Dprinting and\u2026 https:\/\/t.co\/6GWviWvVd1", "truncated": true, "user": { "contributors_enabled": false, "created_at": "Fri Feb 26 16:34:00 +0000 2010", "default_profile": false, "default_profile_image": false, "description": "Official Twitter account for Stanley Black and Decker", "entities": { "description": { "urls": [] }, "url": { "urls": [ { "display_url": "stanleyblackanddecker.com", "expanded_url": "http:\/\/stanleyblackanddecker.com", "indices": [ 0, 22 ], "url": "http:\/\/t.co\/OwfwWAucUP" } ] } }, "favourites_count": 474, "follow_request_sent": false, "followers_count": 5293, "following": false, "friends_count": 170, "geo_enabled": false, "has_extended_profile": false, "id": 117789943, "id_str": "117789943", "is_translation_enabled": false, "is_translator": false, "lang": "en", "listed_count": 136, "location": "New Britain", "name": "StanleyBlack&Decker", "notifications": false, "profile_background_color": "C0DEED", "profile_background_image_url": "http:\/\/pbs.twimg.com\/profile_background_images\/84200087\/stanley_twitter_nologos.jpg", "profile_background_image_url_https": "https:\/\/pbs.twimg.com\/profile_background_images\/84200087\/stanley_twitter_nologos.jpg", "profile_background_tile": false, "profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/117789943\/1501159100", "profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/534427580120571905\/qEDM5_-D_normal.jpeg", "profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/534427580120571905\/qEDM5_-D_normal.jpeg", "profile_link_color": "0084B4", "profile_sidebar_border_color": "C0DEED", "profile_sidebar_fill_color": "FFD30D", "profile_text_color": "333333", "profile_use_background_image": true, "protected": false, "screen_name": "StanleyBlkDeckr", "statuses_count": 1239, "time_zone": null, "translator_type": "none", "url": "http:\/\/t.co\/OwfwWAucUP", "utc_offset": null, "verified": false } }, "source": "<a href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\">Twitter for iPhone<\/a>", "text": "RT #StanleyBlkDeckr: Ahead of the Stanley+Techstars program, #Techstars leaders visited us to see how we've incorporated #3Dprinting and ad\u2026", "truncated": false, "user": { "contributors_enabled": false, "created_at": "Mon Jul 27 04:06:55 +0000 2015", "default_profile": true, "default_profile_image": false, "description": "Humble Star", "entities": { "description": { "urls": [] } }, "favourites_count": 51, "follow_request_sent": false, "followers_count": 26, "following": false, "friends_count": 74, "geo_enabled": false, "has_extended_profile": false, "id": 3296795162, "id_str": "3296795162", "is_translation_enabled": false, "is_translator": false, "lang": "en", "listed_count": 0, "location": "", "name": "Munkhi Tse", "notifications": false, "profile_background_color": "C0DEED", "profile_background_image_url": "http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png", "profile_background_image_url_https": "https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png", "profile_background_tile": false, "profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/3296795162\/1520835673", "profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/973081082500235264\/46urpcv1_normal.jpg", "profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/973081082500235264\/46urpcv1_normal.jpg", "profile_link_color": "1DA1F2", "profile_sidebar_border_color": "C0DEED", "profile_sidebar_fill_color": "DDEEF6", "profile_text_color": "333333", "profile_use_background_image": true, "protected": false, "screen_name": "Munkhitse", "statuses_count": 53, "time_zone": "Pacific Time (US & Canada)", "translator_type": "none", "url": null, "utc_offset": -25200, "verified": false } }
TwitterSearch:
Input:
SELECT * FROM TwitterSearch('Techstars')
Output:
{ "_entity_type": "tweet", "_id": "tweet_976733289221210112", "contributors": null, "coordinates": null, "created_at": "Thu Mar 22 08:12:17 +0000 2018", "entities": { "hashtags": [ { "indices": [ 121, 132 ], "text": "3Dprinting" } ], "symbols": [], "urls": [], "user_mentions": [ { "id": 117789943, "id_str": "117789943", "indices": [ 3, 19 ], "name": "StanleyBlack&Decker", "screen_name": "StanleyBlkDeckr" }, { "id": 14277276, "id_str": "14277276", "indices": [ 61, 71 ], "name": "techstars", "screen_name": "techstars" } ] }, "favorite_count": 0, "favorited": false, "geo": null, "id": 976733289221210112, "id_str": "976733289221210112", "in_reply_to_screen_name": null, "in_reply_to_status_id": null, "in_reply_to_status_id_str": null, "in_reply_to_user_id": null, "in_reply_to_user_id_str": null, "is_quote_status": false, "lang": "en", "metadata": { "iso_language_code": "en", "result_type": "recent" }, "place": null, "retweet_count": 7, "retweeted": false, "retweeted_status": { "contributors": null, "coordinates": null, "created_at": "Wed Mar 21 20:37:05 +0000 2018", "entities": { "hashtags": [ { "indices": [ 100, 111 ], "text": "3Dprinting" } ], "symbols": [], "urls": [ { "display_url": "twitter.com\/i\/web\/status\/9\u2026", "expanded_url": "https:\/\/twitter.com\/i\/web\/status\/976558334030442498", "indices": [ 117, 140 ], "url": "https:\/\/t.co\/6GWviWvVd1" } ], "user_mentions": [ { "id": 14277276, "id_str": "14277276", "indices": [ 40, 50 ], "name": "techstars", "screen_name": "techstars" } ] }, "favorite_count": 11, "favorited": false, "geo": null, "id": 976558334030442498, "id_str": "976558334030442498", "in_reply_to_screen_name": null, "in_reply_to_status_id": null, "in_reply_to_status_id_str": null, "in_reply_to_user_id": null, "in_reply_to_user_id_str": null, "is_quote_status": false, "lang": "en", "metadata": { "iso_language_code": "en", "result_type": "recent" }, "place": null, "possibly_sensitive": false, "retweet_count": 7, "retweeted": false, "source": "<a href=\"http:\/\/percolate.com\" rel=\"nofollow\">Percolate<\/a>", "text": "Ahead of the Stanley+Techstars program, #Techstars leaders visited us to see how we've incorporated #3Dprinting and\u2026 https:\/\/t.co\/6GWviWvVd1", "truncated": true, "user": { "contributors_enabled": false, "created_at": "Fri Feb 26 16:34:00 +0000 2010", "default_profile": false, "default_profile_image": false, "description": "Official Twitter account for Stanley Black and Decker", "entities": { "description": { "urls": [] }, "url": { "urls": [ { "display_url": "stanleyblackanddecker.com", "expanded_url": "http:\/\/stanleyblackanddecker.com", "indices": [ 0, 22 ], "url": "http:\/\/t.co\/OwfwWAucUP" } ] } }, "favourites_count": 474, "follow_request_sent": false, "followers_count": 5293, "following": false, "friends_count": 170, "geo_enabled": false, "has_extended_profile": false, "id": 117789943, "id_str": "117789943", "is_translation_enabled": false, "is_translator": false, "lang": "en", "listed_count": 136, "location": "New Britain", "name": "StanleyBlack&Decker", "notifications": false, "profile_background_color": "C0DEED", "profile_background_image_url": "http:\/\/pbs.twimg.com\/profile_background_images\/84200087\/stanley_twitter_nologos.jpg", "profile_background_image_url_https": "https:\/\/pbs.twimg.com\/profile_background_images\/84200087\/stanley_twitter_nologos.jpg", "profile_background_tile": false, "profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/117789943\/1501159100", "profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/534427580120571905\/qEDM5_-D_normal.jpeg", "profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/534427580120571905\/qEDM5_-D_normal.jpeg", "profile_link_color": "0084B4", "profile_sidebar_border_color": "C0DEED", "profile_sidebar_fill_color": "FFD30D", "profile_text_color": "333333", "profile_use_background_image": true, "protected": false, "screen_name": "StanleyBlkDeckr", "statuses_count": 1239, "time_zone": null, "translator_type": "none", "url": "http:\/\/t.co\/OwfwWAucUP", "utc_offset": null, "verified": false } }, "source": "<a href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\">Twitter for iPhone<\/a>", "text": "RT #StanleyBlkDeckr: Ahead of the Stanley+Techstars program, #Techstars leaders visited us to see how we've incorporated #3Dprinting and ad\u2026", "truncated": false, "user": { "contributors_enabled": false, "created_at": "Mon Jul 27 04:06:55 +0000 2015", "default_profile": true, "default_profile_image": false, "description": "Humble Star", "entities": { "description": { "urls": [] } }, "favourites_count": 51, "follow_request_sent": false, "followers_count": 26, "following": false, "friends_count": 74, "geo_enabled": false, "has_extended_profile": false, "id": 3296795162, "id_str": "3296795162", "is_translation_enabled": false, "is_translator": false, "lang": "en", "listed_count": 0, "location": "", "name": "Munkhi Tse", "notifications": false, "profile_background_color": "C0DEED", "profile_background_image_url": "http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png", "profile_background_image_url_https": "https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png", "profile_background_tile": false, "profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/3296795162\/1520835673", "profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/973081082500235264\/46urpcv1_normal.jpg", "profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/973081082500235264\/46urpcv1_normal.jpg", "profile_link_color": "1DA1F2", "profile_sidebar_border_color": "C0DEED", "profile_sidebar_fill_color": "DDEEF6", "profile_text_color": "333333", "profile_use_background_image": true, "protected": false, "screen_name": "Munkhitse", "statuses_count": 53, "time_zone": "Pacific Time (US & Canada)", "translator_type": "none", "url": null, "utc_offset": -25200, "verified": false } }
NFLGames:
Input:
SELECT * FROM NFLGames
WHERE status = 'FUTURE' and
away_team.team_name = 'New England Patriots' OR
home_team.team_name = 'New England Patriots' AND
start_datetime.countdown = 3600
SoccerGames:
Input:
SELECT * FROM SoccerGames
WHERE away_team.team_name = 'Real Madrid'
OR home_team.team_name = 'Real Madrid'
AND start_datetime.countdown = 3600
Output:
{
"matches_count": 1,
"results": [
{
"_entity_type": "SoccerGame",
"_id": "SoccerGame_490555",
"away_score": null,
"away_team": {
"_entity_type": "SoccerTeam",
"_id": "SoccerTeam_86",
"espn_id": 86,
"id": "SoccerTeam_86",
"logo_url": "http://a.espncdn.com/combiner/i?img=/i/teamlogos/soccer/500/86.png&h=500",
"team_name": "Real Madrid"
},
"competition": "Spanish Primera División",
"game_id": "490555",
"home_score": null,
"home_team": {
"_entity_type": "SoccerTeam",
"_id": null,
"team_name": "Leganes"
},
"link": "http://m.espn.go.com/soccer/gamecast?gameId=490555&lang=EN&wjb=",
"start_datetime": {
"countdown": 86970,
"datetime": "2018-02-21T17:45:00+0000",
"timestamp": 1519235100
},
"status": "FUTURE",
"timestamp": 1519235100
}
]
}
EpisodesByTVShow:
Input:
SELECT * FROM
EpisodesByTVShow(name = 'Game of Thrones')
WHERE start_datetime.countdown = 3600
Output:
{
"_entity_type": "Episode",
"_id": "Episode_4961",
"image": {
"medium": "http://static.tvmaze.com/uploads/images/medium_landscape/1/2681.jpg",
"original": "http://static.tvmaze.com/uploads/images/original_untouched/1/2681.jpg"
},
"link": "http://www.tvmaze.com/episodes/4961/game-of-thrones-1x10-fire-and-blood",
"number": 10,
"runtime": 60,
"season": 1,
"start_datetime": {
"countdown": -210591933,
"datetime": "2011-06-20T01:00:00+0000",
"timestamp": 1308531600
},
"summary": "Daenerys must realize her destiny. Jaime finds himself in an unfamiliar predicament.",
"title": "Fire and Blood",
"tvmaze_episode_id": 4961,
"tvshow": {
"_entity_type": "TVShow",
"_id": "TVShow_82",
"externals": {
"imdb": "tt0944947",
"thetvdb": 121361,
"tvrage": 24493
},
"genres": [
"Drama",
"Adventure",
"Fantasy"
],
"id": "TVShow_82",
"image": {
"medium": "http://static.tvmaze.com/uploads/images/medium_portrait/143/359013.jpg",
"original": "http://static.tvmaze.com/uploads/images/original_untouched/143/359013.jpg"
},
"language": "English",
"name": "Game of Thrones",
"network": {
"country": {
"code": "US",
"name": "United States",
"timezone": "America/New_York"
},
"id": 8,
"name": "HBO"
},
"officialSite": "http://www.hbo.com/game-of-thrones",
"premiered": "2011-04-17",
"rating": {
"average": 9.3
},
"runtime": 60,
"schedule": {
"days": [
"Sunday"
],
"time": "21:00"
},
"status": "Running",
"summary": "<p>Based on the bestselling book series <i>A Song of Ice and Fire</i> by George R.R. Martin, this sprawling new HBO drama is set in a world where summers span decades and winters can last a lifetime. From the scheming south and the savage eastern lands, to the frozen north and ancient Wall that protects the realm from the mysterious darkness beyond, the powerful families of the Seven Kingdoms are locked in a battle for the Iron Throne. This is a story of duplicity and treachery, nobility and honor, conquest and triumph. In the <b>Game of Thrones</b>, you either win or you die.</p>",
"tvmaze_id": 82,
"type": "Scripted",
"updated": 1517168016,
"url": "http://www.tvmaze.com/shows/82/game-of-thrones",
"webChannel": {
"country": {
"code": "US",
"name": "United States",
"timezone": "America/New_York"
},
"id": 22,
"name": "HBO Go"
},
"weight": 99
}
}
WeatherByCity:
Input:
SELECT * FROM WeatherByCity
(name = 'San Francisco'
AND country.name = 'United States'
AND subdivision.type = 'State'
AND subdivision.name = 'California')
WHERE weather_conditions.main = 'Rain'
AND start_datetime.countdown = 86400
Output:
{
"_entity_type": "WeatherStatus",
"_id": "WeatherStatus_Geoname_5391959-1519178400",
"city": {
"_entity_type": "City",
"_id": "Geoname_5391959",
"admin1_code": "CA",
"admin2_code": "075",
"admin3_code": null,
"admin4_code": null,
"alternative_names": [
"Franciscopolis",
"Frisco",
"Gorad San-Francyska",
"Kapalakiko",
"Khiu-kim-san",
"Khiu-kîm-sân",
"Lungsod ng San Francisco",
"New Albion",
"SF",
"SFO",
"San Francisco",
"San Franciscu",
"San Francisko",
"San Fransisco",
"San Fransiskas",
"San Fransisko",
"San Frantzisko",
"San Phransisko",
"San-Francisko",
"San-Fransisko",
"Sanfrancisko",
"Sao Francisco",
"São Francisco",
"Yerba Buena",
"can pirancisko",
"jiu jin shan",
"saenpeulan",
"saenpeulansiseuko",
"saina pharansisako",
"saina phransisko",
"san f ran si s ko",
"san fan shi",
"san fransskw",
"san fransyskw",
"san fransyskۆ",
"san phransisko",
"sana phransisako ka'unti",
"sana phransisko",
"sanfuranshisuko",
"sena phransisko",
"sn prnsysqw",
"syana phransisko",
"Σαν Φρανσίσκο",
"Горад Сан-Францыска",
"Сан Франсиско",
"Сан Франциско",
"Сан-Франциско",
"Сан-Франціско",
"Սան Ֆրանցիսկո",
"סאן פראנציסקא",
"סן פרנסיסקו",
"سان فرانسسکو",
"سان فرانسيسكو",
"سان فرانسیسکو",
"سان فرانسیسکۆ",
"सॅन फ्रान्सिस्को",
"सैन फ्रांसिस्को",
"स्यान फ्रान्सिस्को",
"সান ফ্রান্সিসকো কাউন্টি",
"সান ফ্রান্সিস্কো",
"ਸੈਨ ਫਰਾਂਸਿਸਕੋ",
"சான் பிரான்சிஸ்கோ",
"శాన్ ఫ్రాన్సిస్కో",
"സാൻ ഫ്രാൻസിസ്കോ",
"සැන් ෆ්\u200dරැන්සිස්කෝ",
"ซานฟรานซิสโก",
"སན་ཧྥུ་རན་སིས་ཁོ",
"ဆန်ဖရန်စစ္စကိုမြို့",
"სან-ფრანცისკო",
"サンフランシスコ",
"三藩市",
"旧金山",
"舊金山",
"샌프란",
"샌프란시스코"
],
"ascii_name": "San Francisco",
"coordinates": "37.77493,-122.41942",
"country": {
"country_code_2": "US",
"country_code_3": "USA",
"country_numeric_code": "840",
"name": "United States",
"official_name": "United States of America"
},
"dem": "28",
"elevation": 16,
"feature_class": "P",
"feature_code": "PPLA2",
"geonameid": "5391959",
"id": "Geoname_5391959",
"modification_date": "2017-06-15",
"name": "San Francisco",
"population": 864816,
"subdivision": {
"country_code_2": "US",
"name": "California",
"subdivision_code": "US-CA",
"type": "State"
},
"timezone": "America/Los_Angeles"
},
"features": {
"clouds_percent": 44,
"humidity_percent": 83,
"pressure": {
"hPa": 1027.12,
"inHg": 30.33,
"mmHg": 770.4
},
"rain": {
"inch_hour": 0,
"mm_hour": 0
},
"snow": {
"inch_hour": 0,
"mm_hour": 0
},
"temperature": {
"celsius": 8.36,
"fahrenheit": 32
},
"wind_direction_degrees": 297.002,
"wind_speed": {
"meters_per_second": 3.42,
"miles_per_hour": 7.65
}
},
"is_current": false,
"measure_time": {
"countdown": 42931,
"datetime": "2018-02-21T03:00:00+0000",
"timestamp": 1519182000
},
"start_datetime": {
"countdown": 39331,
"datetime": "2018-02-21T02:00:00+0000",
"timestamp": 1519178400
},
"weather_conditions": [
{
"description": "scattered clouds",
"icon": "03n",
"icon_url": "http://openweathermap.org/img/w/03n",
"id": 802,
"main": "Clouds"
}
]
}
NBAGames:
Input:
SELECT * FROM NBAGames
WHERE status='FUTURE'
AND (away_team.team_name='Charlotte Hornets'
OR home_team.team_name='Charlotte Hornets')
AND start_datetime.countdown = 3600
Output:
{
"matches_count": 1,
"results": [
{
"_entity_type": "NBAGame",
"_id": "NBAGame_400975613",
"away_score": null,
"away_team": {
"_entity_type": "NBATeam",
"_id": "NBATeam_CHA",
"acronym": "CHA",
"division": "Southeast",
"id": "NBATeam_CHA",
"team_name": "Charlotte Hornets"
},
"game_id": "400975613",
"home_team": {
"_entity_type": "NBATeam",
"_id": null,
"acronym": null
},
"link": "http://espn.go.com/nba/game?gameId=400975613",
"start_datetime": {
"countdown": 137435,
"datetime": "2018-02-23T00:00:00+0000",
"timestamp": 1519344000
},
"status": "FUTURE"
}
]
}
MLBGames:
Input:
SELECT * FROM MLBGames
WHERE status = 'FUTURE'
AND (away_team.team_name = 'Toronto Blue Jays'
OR home_team.team_name = 'Toronto Blue Jays')
AND start_datetime.countdown = 3600
Output:
{
"matches_count": 1,
"results": [
{
"_entity_type": "MLBGame",
"_id": "MLBGame_400962533",
"away_score": null,
"away_team": {
"_entity_type": "MLBTeam",
"_id": "MLBTeam_TOR",
"acronym": "TOR",
"division": "AL East",
"id": "MLBTeam_TOR",
"team_name": "Toronto Blue Jays"
},
"game_id": "400962533",
"home_team": {
"_entity_type": "MLBTeam",
"_id": null,
"acronym": null
},
"link": "http://espn.go.com/nhl/gamecast?gameId=400962533",
"start_datetime": {
"countdown": 135524,
"datetime": "2018-02-23T00:00:00+0000",
"timestamp": 1519344000
},
"status": "FUTURE"
}
]
}
NHLGames:
Input:
SELECT * FROM NHLGames
WHERE status='FUTURE'
AND (away_team.team_name='New Jersey Devils'
OR home_team.team_name='New Jersey Devils')
AND start_datetime.countdown = 3600
Output:
{
"matches_count": 1,
"results": [
{
"_entity_type": "NHLGame",
"_id": "NHLGame_400962534",
"away_score": null,
"away_team": {
"_entity_type": "NHLTeam",
"_id": "NHLTeam_NJ",
"acronym": "NJ",
"division": "Metropolitan Division",
"id": "NHLTeam_NJ",
"team_name": "New Jersey Devils"
},
"game_id": "400962534",
"home_team": {
"_entity_type": "NHLTeam",
"_id": null,
"acronym": null
},
"link": "http://espn.go.com/nhl/gamecast?gameId=400962534",
"start_datetime": {
"countdown": 134517,
"datetime": "2018-02-23T00:00:00+0000",
"timestamp": 1519344000
},
"status": "FUTURE"
}
]
}
CryptoTickers:
Input:
SELECT * FROM CryptoTickers
WHERE market_cap_usd >= 18000000000
StockTickers:
SELECT * FROM StockTickers('AAPL')
WHERE close > 170
I'm been working with Ably Hub - it is a marketplace for open streaming data sources, which are either paid or free to use under different licenses.
Full disclosure: I'm a Developer Advocate for Ably but I think the resources from this marketplace might certainly help you with some cool data viz.
If you are interested in checking out an example - I built a live bitcoin price chart using one of the sources from the Ably Hub and KendoUI.