What is a document database and vector database#3104
Conversation
Appwrite WebsiteProject ID: Website (appwrite/website)Project ID: Tip JWT tokens let functions act on behalf of users while preserving their permissions |
Greptile SummaryThis PR adds two new SEO-focused blog posts — one on document databases and one on vector databases — along with their cover images and cache entries.
Confidence Score: 5/5Two new blog posts adding purely additive content; no code paths, APIs, or application logic are touched. Both posts are static markdoc files with no logic. All internal links resolve to existing routes, author slugs are valid, cover images and cache entries are present, and the articles are marked unlisted so they won't surface prematurely in the blog index. No files require special attention. Important Files Changed
Reviews (4): Last reviewed commit: "Merge branch 'stardust' into docuemnt-da..." | Re-trigger Greptile |
There was a problem hiding this comment.
Is this blog supposed to be added here?
adityaoberai
left a comment
There was a problem hiding this comment.
We need to look at all the pieces of content not relevant to Init
There was a problem hiding this comment.
Is this blog supposed to be here?
There was a problem hiding this comment.
same here, these non related blogs are not going to merged into main immediately and any blogs meant for Init should be kept on a separate PR
| - question: When should you use a document database? | ||
| answer: Use a document database when your data is nested, varies between records, or changes frequently. It is commonly used for user profiles, product catalogs, content management systems, real-time apps, and AI applications. | ||
| --- | ||
| # What is a document database? An expert guide for developers |
There was a problem hiding this comment.
Repeated title
| # What is a document database? An expert guide for developers |
| Most database tutorials start with tables, rows, and columns. But the data you actually work with in application code rarely looks like a table. It looks like a nested object: a user with an address, a list of orders, and a set of preferences, all in one place. A **document database** stores that object as-is, without flattening it across five normalized tables. | ||
|
|
||
| If you have ever spent an afternoon writing a migration just to add one optional field, you already understand the cost this model tries to remove. This guide explains what a document database is, how it stores data, how it differs from a relational database, and when it is the right choice. |
There was a problem hiding this comment.
We're mentioning what a document database is before we actually describe it. Also, this says NoSQL dbs are easy and convenient but we're not getting into any real problems either. Let's rethink the intro.
| * [MongoDB](https://www.mongodb.com/docs/manual/) is the most widely used document database, known for its flexible querying and mature tooling. | ||
| * [Amazon DynamoDB](https://docs.aws.amazon.com/dynamodb/) is a managed key-value and document store built for predictable low-latency access at scale. | ||
| * [Apache CouchDB](https://docs.couchdb.org/) focuses on offline-first replication and sync. | ||
| * [Appwrite Databases](/docs/products/databases) offers the document model with built-in permissions, queries, and realtime updates as part of a backend platform. |
There was a problem hiding this comment.
Not yet, and if we are talking about DocumentsDB, we need to mention it explicitly
|
|
||
| ## How Appwrite implements the document model | ||
|
|
||
| [Appwrite Databases](/docs/products/databases) is a document database that stores data in collections of JSON-like documents. It keeps the flexibility of the document model while adding the pieces most projects end up needing anyway. |
| ## How Appwrite implements the document model | ||
|
|
||
| [Appwrite Databases](/docs/products/databases) is a document database that stores data in collections of JSON-like documents. It keeps the flexibility of the document model while adding the pieces most projects end up needing anyway. | ||
|
|
||
| * [Queries](/docs/products/databases/queries) let you filter, sort, and paginate documents without writing raw query syntax. For a walkthrough, see [understand Appwrite queries](/blog/post/understand-data-queries). | ||
| * [Relationships](/docs/products/databases/relationships) give you first-class one-to-many and many-to-many links between collections. | ||
| * [Permissions](/docs/products/databases/permissions) are enforced at the document level, so access control is part of the data model rather than a separate layer. | ||
| * **Realtime updates** push changes to connected clients as documents change, which fits chat, dashboards, and collaborative apps. | ||
|
|
||
| Appwrite is also flexible about its storage engine. It originally shipped with MariaDB and, since version 1.9, supports MongoDB as the underlying database, while your application code talks to the same Databases API regardless. If you want to connect an external engine instead, see [integrate SQL, NoSQL, vector, graph, or any database into your Appwrite project](/blog/post/integrate-sql-nosql-vector-graph-or-any-database-into-your-appwrite-project). | ||
|
|
||
| ## Getting started with Appwrite Databases | ||
|
|
||
| A document database is the right choice when your data is flexible, nested, or still evolving, and when iteration speed matters as much as structure. It is not a universal replacement for relational databases, but for the majority of modern app and AI workloads, the document model removes friction without giving up much in return. | ||
|
|
||
| If you want the flexibility of the document model with permissions, queries, relationships, and realtime built in, [Appwrite Databases](/docs/products/databases) is designed for exactly that kind of fast, iterative development. Start with the [databases quick start](/docs/products/databases/quick-start), or read one of the guides below to go deeper. | ||
|
|
There was a problem hiding this comment.
This needs to be fixed for DocumentsDB if we're keeping it for Init and if not, we need to entirely fix this because we're not NoSQL yet.
Also, let's make this one section.
| Since version 1.9, Appwrite also supports MongoDB as its underlying database engine, which brings native vector search within reach for teams that want to keep embeddings and operational data in one place. See [choosing the right database for AI applications: when to use MongoDB](/blog/post/choosing-the-right-database-for-ai-applications-when-to-use-mongodb). | ||
|
|
||
| ## Getting started with vector search on Appwrite | ||
|
|
There was a problem hiding this comment.
If we're not waiting for Init, we should talk about our function templates for vector search (check the Integrations catalog on the site)
If we are, this should be about VectorsDB.

Latest SEO blogs