couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kevin Burton <rkevinbur...@charter.net>
Subject Re: Exist test?
Date Mon, 05 Nov 2012 20:17:55 GMT
When I create a new document both the id and rev will be null. So in order to determine if
the create is a duplicate another field must be involved.
A view (this is my crude understanding) is a function in the database that test for programmable
field values in the document. A design document is basically a document of views that can
be persisted to the db. For example say my document had a field 'title' I could construct
a view to return all documents that have a given 'title'. The reason that I brought this up
in this context is that if I could check to see if there were any documents that had a particular
title then I would be closer to finding out if the document had already been inserted in the
db. Problem is that I don't know how to do all this with DreamSeat. Maybe I should use another
.NET driver.

On Nov 5, 2012, at 2:00 PM, Jens Alfke <jens@couchbase.com> wrote:

> 
> On Nov 5, 2012, at 11:53 AM, Kevin Burton <rkevinburton@charter.net> wrote:
> 
>> So if I create a document that already exists how does the database know that it
already exists to give me a 409 error?
> 
> If you PUT a document, and the body of your request has no ‘_rev’ property, it’s
an initial creation of a new document. The request will fail if there is already a document
with that ID in the database. (CouchDB can tell this apart from an update request because
you didn’t include the document’s existing ‘_rev’ in the request.)
> 
> If you’re using POST, that by definition always creates a new document (with a randomly-assigned
ID), so it’s meaningless to say whether the document already exists.
> 
>> How do I establish a view? Won't I run into the same problem by creating a view that
already exists (via the DesignDocument)?
> 
> Sorry, I don’t understand the question.
> 
> Maybe you should back up and describe what you’re trying to do in more detail.
> 
> —Jens

Mime
View raw message