Great, that works On Tuesday, March 31, 2015 at 12:56:18 PM UTC-5, Michael Bayer wrote: > > > > joe meiring <[email protected] <javascript:>> wrote: > > > So I've got a model like such and using sqlalchemy v0.9.8 > > > > class myModel(Base): > > > > > > id > > = Column(Integer, primary_key=True) > > > > border > > = Column(JSONB) > > How can I query for rows that don't have a border? I've tried: > > > > filter(myModel.border != None) #nope > > > > filter > > (myModel.border != 'null') #nope > > from sqlalchemy import null > > > > filter > > (myModel.border != null()) #nope > > > The value is apparently stored in postgres as a "JSON encoded null > value". Its definitely getting serialized back to a python None when > instantiated, but I have no idea how to query against it. It looks like you > can set none_as_null on the column, i.e.: > > > > Column(JSONB(none_as_null=True)) > > Which replaces the JSON encoded null with a SQL null, but that seems > strange to have to do on all columns. What am I missing here? > > > The none_as_null flag doesn’t apply to comparisons right now (maybe it > should), only to INSERT statements. If you actually want to deal with the > JSON NULL value explicitly and differentiate that from a column that has no > value, you probably want to leave that flag off. > > For comparison, assuming you are looking for a non-null value that is the > JSON value ’null’, you can force the comparison with text: > > print s.query(myModel).filter(myModel.border == text("'null'")).all() > > > > > > > > > > > > > > > > -- > > You received this message because you are subscribed to the Google > Groups "sqlalchemy" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > Visit this group at http://groups.google.com/group/sqlalchemy. > > For more options, visit https://groups.google.com/d/optout. >
-- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
