Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id F029BB171 for ; Wed, 18 Jan 2012 11:35:10 +0000 (UTC) Received: (qmail 55333 invoked by uid 500); 18 Jan 2012 11:35:08 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 55263 invoked by uid 500); 18 Jan 2012 11:35:07 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 55249 invoked by uid 99); 18 Jan 2012 11:35:07 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Jan 2012 11:35:07 +0000 X-ASF-Spam-Status: No, hits=3.6 required=5.0 tests=FREEMAIL_REPLY,FROM_LOCAL_NOVOWEL,HK_RANDOM_ENVFROM,HTML_MESSAGE,NORMAL_HTTP_TO_IP,RCVD_IN_DNSWL_LOW,SPF_PASS,WEIRD_PORT,WEIRD_QUOTING X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of cgsmcmlxxv@gmail.com designates 209.85.216.180 as permitted sender) Received: from [209.85.216.180] (HELO mail-qy0-f180.google.com) (209.85.216.180) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Jan 2012 11:35:02 +0000 Received: by qcsp15 with SMTP id p15so2841615qcs.11 for ; Wed, 18 Jan 2012 03:34:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=yj5vHRMyCDDV8xECvx2sp/0hBTi23CZ93BjYu+y4Ev8=; b=Ldz8D8qUPVliQ2+71ReYnnAjMzcpNpSetPmL8IW6NaPyq7KBI6N4KPmxFyP4556U8r mw5iMfOSavaFd4dAjFi+lD51NR3bfxRguyLDIKCG+rVrGNZF9p/xsOcP4X9OaZXvXtCY 7XX93TrH5ZtDgDbVR4AH/wcdega9/qwDyoEv8= MIME-Version: 1.0 Received: by 10.224.180.142 with SMTP id bu14mr9298658qab.30.1326886481133; Wed, 18 Jan 2012 03:34:41 -0800 (PST) Received: by 10.229.76.202 with HTTP; Wed, 18 Jan 2012 03:34:41 -0800 (PST) In-Reply-To: References: Date: Wed, 18 Jan 2012 12:34:41 +0100 Message-ID: Subject: Re: get view with a list of keys From: CGS To: user@couchdb.apache.org Content-Type: multipart/alternative; boundary=485b397dce455d7f1c04b6cbd599 --485b397dce455d7f1c04b6cbd599 Content-Type: text/plain; charset=ISO-8859-1 Here is an example (I used list function, but it works with pure map function nevertheless): 1. jQuery plugin: $.test = $.test || {}; $.extend($.test, { fetch_data_startendkey: function(options) { options = options || {}; $.ajax({ type : "GET", url : " http://my_domain.domain_type:5984/mydatabase/_design/design_name/_list/list_function_name/view_function_name?startkey= "+options.startkey+"&endkey="+options.endkey+"&limit="+options.limit+"&skip="+options.skip+"&descending="+options.descending, dataType : "json", async : false, global : false, data : {}, error : options.error, success : options.success }); } }); 2. jQuery callback: $.test.fetch_data_startendkey({ startkey: "my_string", endkey: "my_other_string", limit: mylimit, skip: myoffset, descending: my_descending_boolean, success : function(data, textStatus, headers) { /* do something with the predefined errors and the returned data if no predefined error returned */ }, error : function(code, error, reason) { /* do something with the error */ } }); where "my_*string" is the list transformed in string (e.g., "[\""+key1+"\",\""+key2+...+"\"]", whatever method used to get that string), mylimit and myoffset are integers and so on. No manual encoding needed (handled by the browser). 3. The request in log shows no difference from the direct request from the address bar. This works for me without any problem for my CouchDB 1.1.0. I know the method can be improved to be more robust, but I have no time now for that. Nevertheless, GET method works and it doesn't require manual encoding. CGS PS: I hope I don't have typos and neither I omitted something as I am quite tired now. If I did, please, let me know. On Wed, Jan 18, 2012 at 12:01 PM, Marcello Nuccio wrote: > I'm not sure to follow... > > 1. are you sure the GET does work? When I try, the key[] parameters are > ignored. > > 2. IMHO the advantage of GET is cache-ability. Building a JSON is quite > easy: > JSON.stringify({ keys: [ "key1", "key2" ] }); > > Can you give some more information? > > Thanks, > Marcello > > 2012/1/18 CGS : > > The problem with POST method is that you need to do the encoding > manually, > > while with GET method instead of &key=["key1",...], you get > > &key[]=["key1"]&key[]=... To solve the problem, for example, I transform > > the full query in a string and I attach it manually to the web address. > In > > that way, the browser takes care of encoding for me and I avoid the > mess. I > > use this method under jQuery AJAX (don't forget to add \" for the double > > quota required in the query). > > > > Hope it will help. > > > > CGS > > > > > > > > > > > > On Wed, Jan 18, 2012 at 11:29 AM, Marcello Nuccio < > marcello.nuccio@gmail.com > >> wrote: > > > >> Yes, but you need to do a POST, not a GET: > >> > >> http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options > >> > >> put the following JSON in the body: > >> {"keys": ["key1", "key2", ...]} > >> > >> Marcello > >> > >> 2012/1/18 Alexandre Masselot : > >> > Hello, > >> > > >> > I'm using view with a simple map that extract a couple of values (we > >> store > >> > millions of web page info in couchdb and I need to access rapidly a > md5 > >> > field to know whether we should treat a crawled page or if we already > >> know > >> > it). > >> > > >> > It's fine to get the view output for one page > >> > http://127.0.0.1:5984/honbot/_design/projections/_view/md5?key= > >> > "http%253A%252F%252Fwww.gesunde-maenner.ch%252Fhtml%252F" > >> > > >> > > >> > For saving, we use bulk_docs to save doc per 1000 slices and that goes > >> much > >> > faster. > >> > > >> > My question is: is it possible to make a view request list above, but > >> with > >> > a list of key? > >> > Let's say > >> > "http%253A%252F%252Fwww.gesunde-maenner.ch%252Fhtml%252F" > >> > and "http%253A%252F%252Fwww.pipo.com" > >> > > >> > > >> > thanks for the help > >> > alex > >> > -- > >> > Alexandre Masselot > >> > > >> > http://alexandre-masselot.blogspot.com/ > >> > --485b397dce455d7f1c04b6cbd599--