You are currently browsing legacy 4.1 version of documentation. Click here to switch to the newest 5.1 version.

We can help you with migration to the latest RavenDB

Contact Us Now
see on GitHub

FAQ: What is a Collection

  • A collection in RavenDB is a set of documents tagged with the same @collection metadata property.
    Every document belongs to exactly one collection.

  • Being a schemaless database, there is no requirement that documents in the same collection will share the same structure,
    although typically, a collection holds similarly structured documents based on the entity type of the document.

  • The collection is just a virtual concept.
    There is no influence on how or where documents within the same collection are physically stored.

  • Collections are used throughout many RavenDB features, such as defining indexes, setting revisions, and much more.

  • In this page:

  • For more information see Documents and Collections

Figure 1. What is a Collection

A document in 'Users' collection

Collection Name Generation

When storing an entity from the client:

  • The document collection metadata is generated based on the stored entity object type.

  • By default, the client pluralizes the collection name based on the type name.
    e.g. storing an entity of type Order will generate the collection name Orders.

  • The function that is responsible for tagging the documents can be overridden.
    See: Global Identifier Generation Conventions.

When creating a new document through the Studio:

  • The collection metadata is generated based on the document ID prefix.
    e.g Documents that are created with the following IDs: users|23 / users/45 / users/17
    will all belong to the same Users collection.

  • For more information see Documents and Collections

Collection Usages

  • A Collection Query

    • RavenDB keeps an internal storage index per collection created.
      This internal index is used to query the database and retrieve only documents from a specified collection.
  • In Indexing

    • Each Map Index is built against a single collection (or muliple collections when using a Multi-Map Index.
      During the indexing process, the index function iterates only over the documents that belong to the specified collection(s).
  • In Revisions

    • Documents Revisions can be defined per collection.
  • In Ongoing Tasks

  • The @hilo Collection

  • The @empty Collection