Creating documents

Creating documents

The IDocument<T> interface represents an abstraction for working with documents in Couchbase Server.

The default implementation of IDocument<T> is the Document<T> class, which provides the following properties:

Name Type Description
Id string The unique identifier for the document
Cas ulong The compare and swap (CAS) value for enforcing optimistic concurrency
Expiry uint The time-to-live (TTL) of the document in milliseconds. A value of zero or less for infinite lifetime.
Content Generic T The actual document value to store. This can be a scalar value, an object, or a dynamic type.

The following code snippet shows how to insert a document into Couchbase:

  var document = new Document<Person>
      Id = "P1",
      Content = new Person
          FirstName = "John",
          LastName = "Adams",
          Age = 21

  var result = bucket.Insert(document);
  if (result.Success)
      Console.WriteLine("Inserted document '{0}'", document.Id);

This example uses the Insert() method, which creates a document if it doesn’t exist, failing if it does. The following table shows the methods that are available for storing documents in Couchbase:

Name Description
Insert Inserts a document, failing if it already exists
Replace Replaces a document, failing if doesn’t exist
Upsert Updates a document if it exists, otherwise inserts the document

If the Cas or Expires value is set, they will be honored for each operation.