You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by Dave Cottlehuber <dc...@jsonified.com> on 2012/10/15 10:10:40 UTC

Re: newbie question, add new documents

On 15 October 2012 05:02, A. Lotfi <ma...@yahoo.com> wrote:
> Hi,
> I am new to couchDB, just started to read tutorials about it, I found this one :
> http://blog.edparcell.com/using-jquery-and-couchdb-to-build-a-simple-we

Welcome!

> In the first page it says :
>
>  The initial version of our webapp will let us store a mobile number for each person, so add the following 2 documents:
> view plaincopy to clipboardprint?
>         1. {"type": "address", "name": "Fred", "mobile": "555-0001"}
>         2. {"type": "address", "name": "Barney", "mobile": "555-0002"}
>
>
> Is there any way to add ducument as the above jsons, or just add one by one from :
>
> http://127.0.0.1:5984/_utils/database.html?addressbook
>
>
> by clicking New Document. ?
> thanks

You can use any http library to add documents, but command line cURL
is a very good place to start off from with CouchDB.

You can do this to upload a single JSON doc inline, note that CouchDB
will assign a UUID for you in this case:

    curl -Hcontent-type:application/json -XPOST
http://localhost:5984/test1/ --data-binary '<document>'

or include the UUID yourself:

    curl -Hcontent-type:application/json -XPUT
http://localhost:5984/test1/newdoc --data-binary '<document>'

Where document is the JSON body you have above.

You can also use the bulk_docs interface to upload multiple JSON docs,
when they're in a single file:

http://www.muse.net.nz/blog/2011/12/16/munging-posterous-with-couchdb/

I suggest you use yajl or some other JSON linter to confirm your JSON
is valid before uploading it. A really common issue is that your text
is not UTF8, even though the characters are valid.

A+
Dave

Re: newbie question, add new documents

Posted by "matt j. sorenson" <ma...@sorensonbros.net>.
> Is there any way to add ducument as the above jsons, or just add one by
>>> one from :
>>>
>>> http://127.0.0.1:5984/_utils/**database.html?addressbook<http://127.0.0.1:5984/_utils/database.html?addressbook>
>>
>>
I wonder if the orignal poster was looking simply for a way to add an
entire document at a time, rather than field by field, as the blog post
doesn't make it clear and I've found that it isn't immediately obvious to
new futon users (it wasn't obvious to me, I discovered it by accident) that
when editing or creating a new document, one is able to click on the
'Source' tab, then double-click in the Source area to have an editable text
area in which to type or paste an entire body of json - 1 whole document at
a time. When you already have json, this is obviously more efficient than
field by field when constrained to the futon user interface.

incidentally also a potential ux improvement for futon2 :)
--
*matt j. sorenson*

Re: newbie question, add new documents

Posted by "john.tiger" <jo...@gmail.com>.
On 10/15/2012 02:10 AM, Dave Cottlehuber wrote:
> On 15 October 2012 05:02, A. Lotfi <ma...@yahoo.com> wrote:
>> Hi,
>> I am new to couchDB, just started to read tutorials about it, I found this one :
>> http://blog.edparcell.com/using-jquery-and-couchdb-to-build-a-simple-we
> Welcome!
>
>> In the first page it says :
>>
>>   The initial version of our webapp will let us store a mobile number for each person, so add the following 2 documents:
>> view plaincopy to clipboardprint?
>>          1. {"type": "address", "name": "Fred", "mobile": "555-0001"}
>>          2. {"type": "address", "name": "Barney", "mobile": "555-0002"}
>>
>>
>> Is there any way to add ducument as the above jsons, or just add one by one from :
>>
>> http://127.0.0.1:5984/_utils/database.html?addressbook
>>
>>
>> by clicking New Document. ?
>> thanks
> You can use any http library to add documents, but command line cURL
> is a very good place to start off from with CouchDB.
>
> You can do this to upload a single JSON doc inline, note that CouchDB
> will assign a UUID for you in this case:
>
>      curl -Hcontent-type:application/json -XPOST
> http://localhost:5984/test1/ --data-binary '<document>'
>
> or include the UUID yourself:
>
>      curl -Hcontent-type:application/json -XPUT
> http://localhost:5984/test1/newdoc --data-binary '<document>'
>
> Where document is the JSON body you have above.
>
> You can also use the bulk_docs interface to upload multiple JSON docs,
> when they're in a single file:
>
> http://www.muse.net.nz/blog/2011/12/16/munging-posterous-with-couchdb/

Futon is a simple interface to do some admin on your db or do a simple 
insert or query.  from your example it does sound like you want to use 
the easiest way to get some initial or test data into your db - in that 
case curl and the command bulk_docs is an easy way to load a set of data 
- just note: with bulk_docs you need to structure your json to look like 
this  {"docs": [{json1},{json2}]}    - look up the wiki page on this.   
after you understand using couch commands from the command line using 
curl - then you could move to calling couchdb REST commands from a 
program using jquery, etc but this is a bit trickier with same origin 
policies, etc.



>
> I suggest you use yajl or some other JSON linter to confirm your JSON
> is valid before uploading it. A really common issue is that your text
> is not UTF8, even though the characters are valid.
>
> A+
> Dave
>