With something like this I'd usually start by looking at the CouchDB access
log to see what query Couch is receiving - that way you know whether the
problem is in Couch (say, in the view that's been stored) or in your Ruby
library. I suspect there's some nuance in the query language of the latter
that you're missing.
On Dec 24, 2011 4:52 PM, "Shreekumar" <[email protected]> wrote:
> Good day!
>
> I’ve around 1500 documents which has documentType as a field. And each
> document belongs to any one of the types (i.e. “Survey”,”Response” and
> “Questions”). I’m using CouchRest model to access the CouchDB documents
> with Ruby On Rails platform.
>
> My documents looks like as follows.
> {
> "_id": "ff2fb2554682ba613c2f83c63502808a",
> "_rev": "4-dd559696434a402739e789ccc8c9a481",
> "answers": [
> {
> "answers": [
> "Aug 19,2011"
> ],
> "questionId": "50f3df434ae02ac7fff48c1c2bde83e4"
> },
> {
> "answers": [
> "Bechu Yadav"
> ],
> "questionId": "15504f006e58872fd94871fe0c9d32ad"
> },
> {
> "answers": [
> "35"
> ],
> "questionId": "3c447a2f5cc6ca1985ce2c81463a3c47"
> },
> {
> "answers": [
> "Male"
> ],
> "questionId": "a6df7c25602939554612ef6de762f5b9"
> },
> {
> "questionId": "2f66155965e60094f23f01af531d5af1",
> "subAnswers": [
> {
> "questionId": "1dae2d86eef846c967254c9e369170ce"
> },
> {
> "questionId": "40ffeb4d33dab1fe8d2d8b73c02ed13b"
> },
> {
> "questionId": "2db1e8b6e97d5baa8935b9b31fcc9648"
> },
> {
> "questionId": "0f8bb9f91ea8085b4ffb839ee8deabb5"
> },
> {
> "questionId": "22a93ecb72c50ff8899f8b2937776e51"
> },
> {
> "questionId": "e5106384790c2be745c952c4b867a0ff"
> }
> ]
>
> "questionId": "492cf9bd41257ea478c5222fbba06616"
> }
> ],
> "createdAt": "2011-08-19T21:05:36.486+0000",
> "createdBy": "user4",
> "documentType": "Response",
> "ipAddress": "42.110.85.67",
> "location": {
> "latitude": 26.8415613,
> "longitude": 75.8222883,
> "provider": "network"
> },
> "surveyId": "6df022f0f371752167ad4920b38e1c37",
> "published": true
> }
>
> and my CouchRest (Android) class looks like this.
>
> require 'couchrest_model'
> class Android < CouchRest::Model::Base
> property :description, String
> property :_id, String
> property :_rev, String
> property :documentType, String
> design do
> view :by_documentType
> end
> end
>
> and my view looks like this
>
> function(doc)
> {
> if(doc.documentType=='Survey')
> emit(doc._id, null);
> }
> this is very basic code and working fine, and it’s returning 19 rows. (all
> the documents which have documentType=’Survey’). but when I’m trying to
> access this code in RoR by using CouchRest model; It’s returning only last
> Document (19th Document).
>
> My ruby (irb)command line looks like this
>
> Android.find_by_documentType('Survey')Please help me to solve this.
>
>
>
> -- Warm Regards
> Shreekumar
> Sr. Software Engineer
> World IT Lab | A division of Animika Studios Pvt. Ltd.
> 41, 1st Cross off Kalidasa Road, Jayalaxmipuram
> Mysore - 570 012
> [M] +91 94498 36388 | [T] +91 821 2411 577
> [Web] www.worlditlab.com | www.animikastudios.com
> [Email] mailto:[email protected]
>
> "This e-mail and any attachments to it (the "Communication") is, unless
> otherwise stated, confidential, may contain copyright material and is for
> the use only of the intended recipient. If you receive the Communication in
> error, please notify the sender immediately by return e-mail, delete the
> Communication and the return e-mail, and do not read, copy, retransmit or
> otherwise deal with it. Any views expressed in the Communication are those
> of the individual sender only, unless expressly stated to be those of
> Animika Studios Pvt. Ltd. Animika Studios does not accept liability in
> connection with the integrity of or errors in the Communication, computer
> virus, data corruption, interference or delay arising from or in respect of
> the Communication."
>
>
>