2017-01-12 2 views
0

Ich bin derzeit mit dem Primärindex für eine Liste der Schlüssel in einer Cloudant Datenbank abzufragen:wie _all_docs Primärindex mit Schlüsselliste mit Python-Cloudant aufrufen?

class DAO: 

    @staticmethod 
    def get_movie_names(movie_ids: List[int]) -> Dict[int, str]: 

     # The movie_ids in cloudant are stored as strings so convert to 
     # correct format for querying 
     movie_ids = [ str(id) for id in movie_ids ] 

     keys = urllib.parse.quote_plus(json.dumps(movie_ids)) 

     # The movie id is stored in the _id field, so we query it 
     # using the 'keys' parameter 
     end_point = '{0}/{1}/_all_docs?keys={2}&include_docs=true'.format (
                 CL_URL, CL_MOVIEDB, keys 
                ) 
     response = cloudant_client.r_session.get(end_point) 
     movie_data = json.loads(response.text) 

     movie_names = {} 

     if 'rows' in movie_data: 
      for row in movie_data['rows']: 
       if 'doc' in row: 
        movie_id = int(row['key']) 
        movie_name = row['doc']['name'] 
        movie_names[movie_id] = movie_name 
     return movie_names 

Es sieht aus, als ob ich in der Lage sein, kann dies die cloudant.result.Result Verwendung zu erreichen. Wenn ich die Dokumentation richtig verstanden habe, werden alle Dokumente zurückgegeben und Sie können die zurückgegebenen Ergebnisse filtern. Ich möchte jedoch filtern, indem ich Parameter an die Cloudant-Anfrage übergebe, sodass ich nur die Daten zurücksende, die mich interessieren. Ist das möglich?

Antwort

Verwandte Themen