2009-07-21 7 views
0

Supposons que j'ai une table comme:Comment interroger un ensemble d'objets et renvoyer un ensemble d'attributs spécifiques à un objet dans SQLachemy/Elixir?

class Ticker(Entity): 
    ticker = Field(String(7)) 
    tsdata = OneToMany('TimeSeriesData') 
    staticdata = OneToMany('StaticData') 

Comment aurais-je l'interroger pour qu'il retourne un ensemble de ? Je creuse dans le document et semble select() est le chemin à parcourir. Cependant, je ne suis pas trop familier avec la syntaxe sqlalchemy. Toute aide est appréciée.

AJOUTÉ: Mon but ultime est d'avoir un ensemble de ticker actuel tel que, quand un nouveau ticker n'est pas dans l'ensemble, il sera inséré dans la base de données. J'apprends juste comment créer une base de données et sql en général. Toute pensée est appréciée.

Merci. :)

Répondre

0

Je ne sais pas ce que vous êtes après exactement, mais d'obtenir un tableau avec toutes les valeurs « Ticker.ticker » vous faites ceci:

[instance.ticker for instance in Ticker.query.all()] 

Qu'est-ce que vous voulez vraiment est probablement le Elixir getting started tutorial - il est bon alors jetez un oeil! MISE À JOUR 1: Puisque vous avez une base de données, le meilleur moyen de savoir si un nouveau téléscripteur potentiel doit être inséré ou non est d'interroger la base de données. Ce sera beaucoup plus rapide que de lire tous les tickers dans la mémoire et la vérification. Pour voir si une valeur est là ou non, essayez ceci:

Ticker.query.filter_by(ticker=new_ticker_value).first() 

Si le résultat est Aucun vous ne l'avez pas encore. Donc, tous ensemble,

if Ticker.query.filter_by(ticker=new_ticker_value).first() is None: 
    Ticker(ticker=new_ticker_value) 
    session.commit() 
+0

Ceci est en fait de ce que j'ai maintenant. Je pensais juste s'il y a un moyen de le faire en élixir au lieu de la compréhension de la liste. Si c'est le cas, est-ce plus efficace que la compréhension de la liste? – leon

+0

Je pense que la deuxième ligne est ce que je devrais utiliser. Je vous remercie. Quelle est la convention sur stackoverflow quand j'ai trouvé la bonne solution? – leon

+0

Si vous êtes satisfait de la réponse, cliquez sur l'icône en forme de coche sur le côté gauche pour l'accepter. :) –

Questions connexes