def list_links_count do
query =
from l in Link,
join: c in Click, as: :click,
where: c.link_id == l.id,
group_by: l.id,
select: {l, count(l.id)}
query |> Repo.all
end
मेरे पास एक फ़ंक्शन है जो प्रति लिंक क्लिक की संख्या की गणना करता है। समस्या अंतिम डेटा संरचना के साथ है, जो {Link, 10}
के रूप में है। मैं वास्तव में जो करना चाहता हूं वह यह है कि इसे कुल में डाल दिया है, इसलिए मैं इसे एक दृश्य में अधिक आसानी से एक्सेस कर सकता हूं, जैसे link.click_count
। संभव है कि?
2 जवाब
क्या आपके पास लिंक के लिए अपने Ecto स्कीमा पर वर्चुअल फ़ील्ड है? यदि नहीं, तो आप इसे जोड़ना चाहेंगे:
field(:click_count, :integer, virtual: true)
तब आपका चयन कुछ इस तरह दिख सकता है:
select: %{l | click_count: count(l.id)}
चूँकि अब आपके पास Link
संरचना में एक click_count
कुंजी है, आप उस कुंजी को रख सकते हैं और अभी भी Links
की सूची बना सकते हैं। तो आपको link.click_count
तक पहुंचने में सक्षम होना चाहिए।
Kernel.elem/2
का इस्तेमाल करें:
{Link, 10} |> elem(1)
#⇒ 10
तो, आपके कोड के भीतर:
query
|> Repo.all()
|> how_do_you_get_tuple()
|> elem(1)
संबंधित सवाल
नए सवाल
elixir
अमृत एक खुला-स्रोत, गतिशील, संकलित, सामान्य प्रयोजन कार्यात्मक प्रोग्रामिंग भाषा है। इसे एरलैंग प्लेटफ़ॉर्म के साथ पूरी तरह से संगत करने के लिए डिज़ाइन किया गया था और यह अच्छी तरह से गलती-सहिष्णु लिखने के लिए अनुकूल है, नरम वास्तविक समय की गारंटी और हॉट-कोड-स्वैपिंग की क्षमता के साथ वितरित अनुप्रयोगों।