На самом деле синтаксис очень простой, постараюсь в двух словах объяснить:)  
	Допустим у нас есть коллекция: var db = new Collection([1, 2, 3, 4, [1, 2, 3]]); Первый способ, обращение по прямой ссылке: 
// обратимся к первому элементу вложенного массива
// функция eq выбирает элемент не по ключу, а по порядку
// минус указывает, что отсчёт идёт с конца
// знак > указывает родительское отношение
db.get('eq(-1) > 0');
Второй способ, итеративный поиск с помощью функции callback: 
// выберем элементы с чётными индексами
db.get(function (el, key, data, i, length, cObj, id) {
    return i % 2 === 0;
});
Третий способ схож со вторым, т.к. здесь тоже итеративный обход, но вместо прямого указания функции, мы пишем её, строчное сокращение: 
// знак : обозначает, что это идёт строчное сокращение, т.е. в нашем случае оно равносильно return
db.get(':i % 2 === 0');
// логично, что мы можем написать и так
db.get(':i % 2 === 0 && el !== 2');
// или так, но здесь компилятор уже создаст 2 разных функции
// вложенность скобок не ограниченна, можно использовать операторы логики: !, &&, ||
db.get('(:i % 2 === 0) && (:el !== 2)');
// также фильтр можно заранее сохранить в стеки (как и многое другое) и обращаться по ИД
// функцию можно указывать в строчном или в явном виде, функция может содержать другие функции
db.pushFilter('odd', ':i % 2 === 0');
// используем фильтр odd и дополнительное условие
db.get('odd && (:el !== 2)');
// вызов фильтра в фильтре
db.pushFilter('filter2', 'odd && (:i % 2 === 0)');
db.get('filter2');
А последний способ - это указание контекста для фильтра, формула написания такова: контекст + >> + условие. Разумеется - это лишь малая часть возможностей, но сегодня буду писать статью на Хабр, где всё ёмкостно опишу в 1-й статье, а для подробного изучения есть мануал и дока.  | 
	
		
 Цитата: 
	
 Цитата: 
	
 
db.pushVariable({
  CONST1: 1,
  CONST2: 2
});
// выбрать все элементы, где значения элементов равны CONST1
db.get(':el === <:CONST1:>');
// или так
db.get(':el === this.getVariable("CONST1")');
// или так
db.get(function (el) {
    return el === this.getVariable('CONST1');
});
 | 
	
		
 Цитата: 
	
 По второму вопросу: кстати нет, и это действительно упущение, спасибо за наводку!:)  | 
	
		
 Цитата: 
	
 Как часто на диск сбрасывается?  | 
	
		
 Цитата: 
	
  | 
	
		
 Спасибо за пояснение, теперь стал более понятен синтаксис. Про хранение бд, тоже интересно. 
	Цитата: 
	
 А в остальном, мне понравилось и буду следить за развитием проекта.  | 
	
		
 Можно вот ещё покопать https://github.com/sergeyksv/alfred 
	 | 
	
		
 Спасибо за поддержку! В 4-й версии добавлю волшебный метод query, который на вход будет принимать SQL запрос. Интепретатор уже написан, но пока содержит много багов, будут вложенные запросы, переменные, стат функции, триггеры, хранимые процедуры и т.д. За стандарт SQL взял MySQL:) 
	 | 
	
		
 Есть SQLite в браузере 
	Какое то сравнение с ней можете сделать? Dom storage наcколько я помню ограничена 5 mb а в database storage (SQLite) ограничений не ннашел-реально храню до 100 mb  | 
	
		
 Цитата: 
	
 Мою же библиотеку можно рассматривать с разных сторон: как мега-интерфейс для различных операций с объектами и массивами, либо абстрактно представить как СУБД. Тип использования, как и структура данных полностью на усмотрения разработчика. Ядро библиотеки не использует специфичных объектов окружения, поэтому без проблем будет работать как в браузере, на сервере или как дополнение к ОСи. Насколько я изучал, то у Indexed DB асинхронный интерфейс вызова и это может быть не удобно в некоторых случаях, а у меня интерфейс полностью синхронный, что упрощает написание кода, НО я специально предусмотрел возможность создания асинхронных надстроек, так что написать расширение не составит труда. ЗЫ: DOM storage можно расширять, а также можно без труда написать любой другой интерфейс для хранения данных. ЗЫЗЫ: почти закончил работу над обзорной статьёй и небольшим обновлением :)  | 
| Часовой пояс GMT +3, время: 06:45. |