Ключ - строка. Значение - документ, который может быть строкой, упорядоченным множеством строк, множеством пар строка-строка.
Цель: создание языка запросов для базы данных типа key-value хранилище со следующими возможностями:
- Создание областей данных
- Сохранение записей ключ-значение
- Считывание значения по ключу
- Считывание набора значений по регулярному выражению ключа
- Поиск набора значений по параметрам - соответствие, регулярное выражение, количество
- Операции выборки из значения: элемента списка, словаря
- Операция определения типа данных значения
Примеры записи данных:
create('mySpace')
!mySpace.insert('key1', 'value1')
!mySpace.insert('key2', 'value 2')
!mySpace.insert('key 3', 'value3')
!mySpace.insert('key4', ['value4.1', 'value4.2', 'value4.3'])
!mySpace.insert('key5', {'subkey1' : 'value5.1', 'subkey2' : 'value5.2', 'subkey3' : 'value5.3'})
Примеры чтения данных:
!mySpace.get('key4') || -> ['value4.1', 'value4.2', 'value4.3']
!mySpace.find(key%) || -> ['value1', 'value 2', 'value3', ['value4.1', 'value4.2', 'value4.3'], {'subkey1' : 'value5.1', 'subkey2' : 'value5.2', 'subkey3' : 'value5.3'}]
!mySpace.get('key4').type() || -> list
!mySpace.find(%).where(count value > 2) || -> [['value4.1', 'value4.2', 'value4.3'], {'subkey1' : 'value5.1', 'subkey2' : 'value5.2', 'subkey3' : 'value5.3'}]
!mySpace.find(key%).at(1) || -> 'value 2'
!mySpace.find(key%).at(4).get('subkey1') || -> 'value5.1'