DocumentationGitHub
Introduction
  • Getting Started
Core Concepts
  • Store & Collections
  • Indexes
  • Queries
  • Live Queries
Guides
  • CRUD Patterns
  • Pagination & Sorting
  • Search
  • Persistence
  • Performance
API Reference
  • Store API
  • Collection API
  • Query API
  • React Hooks
Introduction
  • Getting Started
Core Concepts
  • Store & Collections
  • Indexes
  • Queries
  • Live Queries
Guides
  • CRUD Patterns
  • Pagination & Sorting
  • Search
  • Persistence
  • Performance
API Reference
  • Store API
  • Collection API
  • Query API
  • React Hooks

CRUD Patterns

CRUD (Create, Read, Update, Delete) represents the four basic functions usage in persistent storage. Ramify DB provides a simple, synchronous API for these operations, ensuring type safety throughout the process.

Operations

Create

Adding records is done via add() (which ensures uniqueness) or put() (which handles upserts).

  • Single: collection.add(doc)
  • Bulk: collection.bulkAdd([doc1, doc2])

Read

Data can be retrieved by primary key or via queries.

  • By ID: collection.get(key)
  • All: collection.toArray() (use with caution on large datasets)
  • Query: collection.where(...).toArray()

Update

Updates are partial and immutable by default (they replace the internal record).

  • Single: collection.update(key, changes)
  • Bulk: collection.bulkUpdate(keys, changes)
  • Query: collection.where(...).modify(changes)

Delete

Removing records is permanent.

  • Single: collection.delete(key)
  • Bulk: collection.bulkDelete(keys)
  • Query: collection.where(...).delete()

Examples

// CREATE
db.users.add({ id: '1', name: 'John Doe', email: 'john@example.com', ... });
db.users.bulkAdd([user1, user2]);

// READ
const user = db.users.get('1');
const allUsers = db.users.toArray();
const activeUsers = db.users.where({ status: 'active' }).toArray();

// UPDATE
db.users.update('1', { age: 31 });
db.users.bulkUpdate(['1', '2'], { age: 32 });
db.users.where({ status: 'inactive' }).modify({ status: 'active' });

// DELETE
db.users.delete('1');
db.users.bulkDelete(['1', '2']);
db.users.where({ status: 'inactive' }).delete();

// Clear all
db.users.clear();
PreviousLive Queries
NextPagination & Sorting