Create

The insert() and insertBulk() functions let you add documents into a collection.

🔹 insert()

Adds a single document.

await db.users.insert({
  name: "Dinesh Chugtai",
  email: "dinesh@piedpiper.com",
  isAdmin: false,
});

Behavior:

  • Validates the payload against your schema.
  • Applies default values if you skipped them.
  • Throws if required fields are missing or uniqueness is violated.

🔸 insertBulk()

Inserts multiple documents at once.

await db.users.insertBulk([
  { name: "Jared Dunn", email: "jared@piedpiper.com", isAdmin: false },
  { name: "Erlich Bachman", email: "erlich@piedpiper.com", isAdmin: true },
]);

Notes:

  • If any doc violates schema or uniqueness, the entire batch fails.
  • Same rules apply: default values, validation, etc.

✅ Key Management

You can pass a custom key:

await db.users.insert({
  key: "custom_id",
  name: "Monica Hall",
  isAdmin: true,
});

Otherwise, NotDatabase generates a nanoid for you.