-
Notifications
You must be signed in to change notification settings - Fork 1
Methods
Использование методов предполагает после инициализации коллеции
const db = new OrionDB('test_db', {strict: 0}).select('users')
db.insert({test: 'test_data'})Записывает данные в коллекцию
Использование:
db.insert({
id: 123,
username: 'exie'
})Обновляет данные в базе данных, использует однопоточный поиск для вхождения данных. Первый аргумент - поиск по объекту ключ-значение, второй аргумент обновляет ключ-значение.
Использование:
db.update({ id: 123 }, { username: 'admin' })Удаляет JSON-объект, в котором была найдена пара ключ-значение.
Использование:
db.remove({ id: 123 }) //удалили из коллекцииПринимает массив объектов и добавляет в базу данных сразу множество объектов. Этот метод является хорошим решением для оптимизации производительности и сокращает I/O операции. Реализация кеша ложится на разработчика. Боевой пример:
const dbcache = []
for(let i = 0; i <= 5000; i++) {
dbcache.push({ id: i })
}
db.insertMany(dbcache)
dbcache.length = 0Выполняет поиск по базе данных благодаря паре ключ-значение, в случае успеха возращает массив с объектами, в случае неудачи возвращает пустой массив.
let data = await db.search({ id: 123 }) Выполняет поиск по базе данных по ключу, а для поиска значения применяется регулярное выражение. Данный метод поиска предполагает узконаправленный поиск на уровне базы данных.
let data = await db.match({ id: 123 }, /test/g) Этот метод позволяет получить все данные JSON из коллекции. Использование Boolean true при вызове функции разделит данные на массивы по шардам, false напротив вернет единый массив с объектами.
Метод позволяет подписаться на все события в базе данных, для того чтобы моментально реагировать на изменения. Это полезно, если ваша архитектура построена на микросервисах и к примеру в одной части кода мы генерируем временный доступ, а во второй части кода мы видим, что был создан временный доступ по нужному ID в эту же секунду.
Пример кода:
db.watch(event => {
console.log(event) //события вида JSON {type: "update", meta: { collection_name, db_name... }, data: { [{ test: 1 }] }, old_data: { [{ test: 0 }] }}
})Пример кода для WebSocket подключения, мы будем получать события сразу после подключения:
new WebSocket('ws://localhost:5665/test_db@12345/users?watch=1')