library(ODataQuery)
ODataQuery$new("https://services.odata.org/V4/TripPinServiceRW")
service <- service$path("People") people_entity <-
There are three ways to query data using this package.
The most direct way is to directly write your query in OData.
$filter("Concurrency gt 500")
people_entity#> ODataQuery: https://services.odata.org/V4/TripPinServiceRW/People?$filter=(Concurrency%20gt%20500)
$filter("Friends/any(f: f/FirstName eq 'John')")
people_entity#> ODataQuery: https://services.odata.org/V4/TripPinServiceRW/People?$filter=(Friends/any(f:%20f/FirstName%20eq%20'John'))
and_query
, or_query
and not_query
$filter(Concurrency.gt = 500)
people_entity#> ODataQuery: https://services.odata.org/V4/TripPinServiceRW/People?$filter=(Concurrency%20gt%20500)
$filter(or_query(Concurrency.lt = 500, Concurrency.gt = 1500))
people_entity#> ODataQuery: https://services.odata.org/V4/TripPinServiceRW/People?$filter=((Concurrency%20lt%20500%20or%20Concurrency%20gt%201500))
to_odata
$filter(to_odata(Concurrency > 500))
people_entity#> ODataQuery: https://services.odata.org/V4/TripPinServiceRW/People?$filter=(Concurrency%20gt%20500)
'John'
name <-$filter(to_odata(Friends$any(f ~ f$FirstName == !!name)))
people_entity#> ODataQuery: https://services.odata.org/V4/TripPinServiceRW/People?$filter=(Friends/any(f:f/FirstName%20eq%20'John'))