Query¶
Basic usage¶
Get only name
and disabled
keys from all interfaces.
from librouteros.query import Key
# Each key must be created first in order to reference it later.
name = Key('name')
disabled = Key('disabled')
for row in api.path('/interface').select(name, disabled):
print(row)
Advanced Usage¶
Adding where()
, allows to fine tune search criteria.
Syntax is very similar to a SQL query.
name = Key('name')
disabled = Key('disabled')
query = api.path('/interface').select(name, disabled).where(
disabled == False,
Or(
name == 'ether2',
name == 'wlan-lan',
),
)
Above code demonstrates how to select name
, disabled
fields where each interface is disabled
and name
is equal to one of ether2
, wlan-lan
.
If you do not specify any logical operation within where()
, them it defaults to And().
Above example can be rewritten using In
operator.
name = Key('name')
disabled = Key('disabled')
query = api.path('/interface').select(name, disabled).where(
disabled == False,
name.In('ether2', 'wlan-lan'),
)
Select all keys/fields.
name = Key('name')
disabled = Key('disabled')
query = api.path('/interface').select().where(
disabled == False,
name.In('ether2', 'wlan-lan'),
)
Usable operators¶
operator |
example |
---|---|
|
|
|
|
|
|
|
|
|
|
Logical operators¶
And
, Or
. Each operator takes at least two expressions and performs a logical operation translating it to API
query equivalents.