influxquerybuilder

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 5, 2018 License: MIT Imports: 4 Imported by: 0

README

Influx Query Builder

Build Status Coverage Status Codacy Badge

The super lightweight InfluxDB query builder implemented in Go.

Installation

go get -u github.com/benjamin658/influx-query-builder

Query Builder Usage

Simple query
builder := New()
query := builder.
  Select("temperature", "humidity").
  From("measurement).
  Build()

Output:

SELECT "temperature","humidity" FROM "measurement"
Function query
builder := New()
query := builder.
  Select(`MEAN("temperature")`, `SUM("humidity")`).
  From("measurement").
  Build()

Output:

SELECT MEAN("temperature"),SUM("humidity") FROM "measurement"
Query with criteria
builder := New()
query := builder.
  Select("temperature", "humidity").
  From("measurement").
  Where("time", ">", "2018-11-01T06:33:57.503Z").
  And("time", "<", "2018-11-02T09:35:25Z").
  Or("tag", "=", "t").
  Build()

Output:

SELECT "temperature","humidity" FROM "measurement" WHERE "time" > '2018-11-01T06:33:57.503Z' AND "time" < '2018-11-02T09:35:25Z' OR "tag" = 't'
Brackets criteria

Noted: If you use Where with WhereBrackets, Where will override the WhereBrackets.

Where Brackets
builder := New()
query := builder.
  Select("temperature", "humidity").
  From("measurement").
  WhereBrackets(
    // Passing the new builder as the param
    New().
      Where("time", ">", "2018-11-01T06:33:57.503Z").
      And("time", "<", "2018-11-02T09:35:25Z").
  ).
  Or("tag", "=", "t").
  Build()

Output:

SELECT "temperature","humidity" FROM "measurement" WHERE ("time" > '2018-11-01T06:33:57.503Z' AND "time" < '2018-11-02T09:35:25Z') OR "tag" = 't'
And Brackets
builder := New()
query := builder.
  Select("temperature", "humidity").
  From("measurement").
  Where("time", ">", "2018-11-01T06:33:57.503Z").
  AndBrackets(
    // Passing the new builder as the param
    New().
      Where("time", "<", "2018-11-02T09:35:25Z").
      Or("tag", "=", "t"),
  ).
  Build()

Output:

SELECT "temperature","humidity" FROM "measurement" WHERE "time" > '2018-11-01T06:33:57.503Z' AND ("time" < '2018-11-02T09:35:25Z' OR "tag" = 't')
Or Brackets
builder := New()
query := builder.
  Select("temperature", "humidity").
  From("measurement").
  Where("time", ">", "2018-11-01T06:33:57.503Z").
  OrBrackets(
    // Passing the new builder as the param
    New().
      Where("time", "<", "2018-11-02T09:35:25Z").
      Or("tag", "=", "t"),
  ).
  Build()

Output:

SELECT "temperature","humidity" FROM "measurement" WHERE "time" > '2018-11-01T06:33:57.503Z' OR ("time" < '2018-11-02T09:35:25Z' OR "tag" = 't')
Group By time
builder := New()
query := builder.
  Select("temperature", "humidity").
  From("measurement").
  GroupBy("10m").
  Build()

Output:

SELECT "temperature","humidity" FROM "measurement" GROUP BY time(10m)
Order By time
builder := New()
query := builder.
  Select("temperature", "humidity").
  From("measurement").
  Desc().
  Build()

Output:

SELECT "temperature","humidity" FROM "measurement" ORDER BY time DESC
Limit and Offset
builder := New()
query := builder.
  Select("temperature", "humidity").
  From("measurement").
  Limit(10).
  Offset(5).
  Build()

Output:

SELECT "temperature","humidity" FROM "measurement" LIMIT 10 OFFSET 5
Reset builder and get a new one
builder := New()
// some code...
builder = builder.Clean()

License


© Ben Hu (benjamin658), 2018-NOW

Released under the MIT License

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type QueryBuilder

type QueryBuilder interface {
	Select(fields ...string) QueryBuilder
	From(string) QueryBuilder
	Where(string, string, interface{}) QueryBuilder
	And(string, string, interface{}) QueryBuilder
	Or(string, string, interface{}) QueryBuilder
	WhereBrackets(QueryBuilder) QueryBuilder
	AndBrackets(QueryBuilder) QueryBuilder
	OrBrackets(QueryBuilder) QueryBuilder
	GroupBy(string) QueryBuilder
	Fill(interface{}) QueryBuilder
	Limit(int) QueryBuilder
	Offset(int) QueryBuilder
	Desc() QueryBuilder
	Asc() QueryBuilder
	Build() string
	Clean() QueryBuilder
}

QueryBuilder QueryBuilder interface

func New

func New() QueryBuilder

New New QueryBuilder

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL