gitoriaLog in with ident

mpackdb

All repositories: gitoria

ReadmeCodePull requestsReleasesTicketsSettings
Commitd01dda02d01dda02add index hints, intersection, boundingBox; remove findByIndexcaramboleyod01dda02/tests/test-compact-isolated.js

1.0 KB

  1. import MPackDB from '../src/MPackDB.js';
  2. import { rm } from 'fs/promises';
  3. await rm('test-compact-isolated', { recursive: true, force: true });
  4. const db = new MPackDB('test-compact-isolated/records', {
  5. primaryKey: '*id',
  6. indexes: ['*id', 'email', '*score'],
  7. indexPersistThreshold: 100000,
  8. indexPersistInterval: 0
  9. });
  10. console.log('Insert 10,000 records...');
  11. for (let i = 0; i < 10_000; i++) {
  12. await db.insert({
  13. email: `user${i}@example.com`,
  14. name: `User ${i}`,
  15. score: Math.floor(Math.random() * 100),
  16. data: `Data ${i}`
  17. });
  18. }
  19. console.log('Randomly select 500 IDs to delete...');
  20. const idsToDelete = new Set();
  21. while (idsToDelete.size < 500) {
  22. idsToDelete.add(Math.floor(Math.random() * 10_000));
  23. }
  24. console.log('Delete...');
  25. const deletedRecords = await db.delete(r => idsToDelete.has(r.id));
  26. console.log(`Deleted: ${deletedRecords.length}`);
  27. console.log('Count records...');
  28. let count = 0;
  29. for await (const rec of db.find()) count++;
  30. console.log(`Found: ${count} (expected ${10000 - deletedRecords.length})`);
  31. await db.close();
  32. await rm('test-compact-isolated', { recursive: true, force: true });

Branches

Latest commits

  • d01dda02add index hints, intersection, boundingBox; remove findByIndexcaramboleyo
  • b8ffc1a0release 1.0.5caramboleyo
  • d47876a1reimplemented lost features like indexed find and more testscaramboleyo
  • 7f08da9afixed insert ignoring model definitioncaramboleyo
  • 705774a9added flush before findcaramboleyo
  • b4db6391initial commitcaramboleyo