Lib to use easily indexedDB
IndexedDB is a low-level API for client-side storage of significant amounts of structured data, including files/blobs.
The mechanism by which data is stored in the database.
This method creates object stores when database is upgraded, you need create object store before put value in.
Call this method before opens database.
// Array de objectStore para onupgradeneeded
let objectStores = [
['Students', { keyPath: 'id' }],
['Car', { keyPath: 'id' }]
];
vinidex.schema(objectStores);
// after this you can open db
await vinidex.init('myNameIndexedDB');
await vinidex.init('myNameIndexedDB'); // version will be 1
await vinidex.init('myNameIndexedDB', 7);
Method model return an object with methods CRUD for the objectStore, this is helps in writing, because you don't need use every time vinidex
let Students = vinidex.model('Students');
let firstStudent = await Students.findById(0);
query
is condition for search
let izadora = await Students.find({ name: 'Izadora' });
let allStudents = await Students.find(); // all students
// or
allStudents = await Students.find({}); // all students
Greater than >
let greaterThan20 = await Students.find({ age: { $gt: 20} });
Greater than or equal to >=
let gte21 = await Students.find({ age: { $gte: 21} });
Less than <
let lessThan24 = await Students.find({ age: { $lt: 24} });
Less than or equal to <=
let lte30 = await Students.find({ age: { $lte: 30} });
Not equal !==
let ne30 = await Students.find({ name: { $ne: 'Will'} });
name == 'Izadora' && age >= 20 && age < 100
let izadora = await Students.find({
name: 'Izadora',
age: { $gte: 20, $lt: 100 },
});
Students.updateById(0, {
name: 'Roberts'
});
Students.update({ name: 'Julia' }, {
name: 'Roberts'
});
Students.delete(0);
await Students.add({ id: 0, name: 'Vinicius' });
The alternative of this is use an object model
await vinidex.add('Car', { id: 0, name: 'Lancer' });
vinidex.delete('Car', 0);
let lancer = await vinidex.select('Car', 0);
query
is condition for search
let lancer = await vinidex.find('Car', { name: 'Lancer' });
vinidex.updateById('Car', 0, {
name: 'F-Pace'
});
vinidex.update('car', { name: 'Lancer' }, {
name: 'F-Pace'
});