PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

SqlAlchemy:एक सरणी वाले लंबाई json फ़ील्ड को क्वेरी करना

समाधान मिला

एक वर्ग बनाएं जो इस तरह FunctionElement को बढ़ाता है

from sqlalchemy.sql.expression import FunctionElement
from sqlalchemy.ext.compiler import compiles
class json_array_length(FunctionElement):
    name = 'json_array_len'

@compiles(json_array_length)
def compile(element, compiler, **kw):
    return "json_array_length(%s)" % compiler.process(element.clauses)

और इसे इस तरह इस्तेमाल करें

session.query(Post.id, json_array_length(Post.items))

नोट:यह पोस्टग्रेज पर काम करेगा क्योंकि इसमें 'json_array_length' फंक्शन परिभाषित है। यदि आप इसे किसी भिन्न DB के लिए चाहते हैं, तो उस फ़ंक्शन को बदलने की आवश्यकता होगी। http://docs.sqlalchemy.org/en/rel_0_9/core/compiler.html#forther-examples



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pg_restore त्रुटि:भूमिका XXX मौजूद नहीं है

  2. विशिष्ट बहु विशेषता मानों वाले सभी उत्पादों को कैसे खोजें

  3. postgresql 9.1 - फ़ंक्शन के माध्यम से एक्सेस टेबल

  4. PostgreSQL में कई तालिकाओं में फैले सूचकांक

  5. सभी डेटाबेस नाम प्रदर्शित करें