Re: it's possible to query for optional parts on many relations?
Yes I could, but I'm trying to stick on the philosophy of "define your data at query time", so I would like to move all "query stuff" to Datomic, also, even if I don't use, I still would like to know if that's possible, I'm still very noob to Datomic and so trying stuff around. But considering all kinds of complex stuff that Datomic support, I would be surprise if that wasn't possible to do at query time... So, what I do in my queries is just fetch all fields and name then by position, it's very flexible as long as I'm able to "shape" my data at query time, so, if there is a way to do it, I would love to know. Thanks. --- Wilker Lúcio http://about.me/wilkerlucio/bio Woboinc Consultant +55 81 82556600 On Thu, Sep 18, 2014 at 7:48 PM, Ashton Kemerling wrote: > Couldn't you just retrieve users and use "entity" to get their photos? > > On Thu, Sep 18, 2014 at 4:43 PM, Wilker wrote: > >> Forgot to mention, I tried the (get-else) but it raises an error about >> cardinality many not supported, so I guessed it doesn't works here... >> >> --- >> Wilker Lúcio >> http://about.me/wilkerlucio/bio >> Woboinc Consultant >> +55 81 82556600 >> >> On Thu, Sep 18, 2014 at 7:41 PM, Wilker wrote: >> >>> Hi >>> >>> I'm trying to figure if I can make some parts of my query results to be >>> optional, for example, given the following query: >>> >>> [:find ?name ?age >>> :where >>> [?m :person/name ?name] >>> [?m :person/age ?age]] >>> >>> This will return all entities that has a :person/name and :person/age. >>> Ok, so, if I want to make the name mandatory and the age optional, I can do: >>> >>> [:find ?name ?age >>> :in $ >>> :where >>> [?m :person/name ?name] >>> [(get-else $ ?m :person/age 0) ?age]] >>> >>> Ok, so, for single values that works great, but what about this: >>> >>> [:find ?m ?name (vec ?url) >>> :in $ >>> :where >>> [?m :person/name ?name] >>> [?m :photos ?p] >>> [?p :file/url ?url]] >>> >>> On the previous query, it fetch every person that has at least 1 photo, >>> but not those that has no photos. >>> >>> How do I make to the query to return all entities that has name, having >>> photos or not (ideally the value would be a blank list for those without >>> photos)? >>> >>> Best regards. >>> --- >>> Wilker Lúcio >>> http://about.me/wilkerlucio/bio >>> Woboinc Consultant >>> +55 81 82556600 >>> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google Groups > "Datomic" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to datomic+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: it's possible to query for optional parts on many relations?
Couldn't you just retrieve users and use "entity" to get their photos? On Thu, Sep 18, 2014 at 4:43 PM, Wilker wrote: > Forgot to mention, I tried the (get-else) but it raises an error about > cardinality many not supported, so I guessed it doesn't works here... > --- > Wilker Lúcio > http://about.me/wilkerlucio/bio > Woboinc Consultant > +55 81 82556600 > On Thu, Sep 18, 2014 at 7:41 PM, Wilker wrote: >> Hi >> >> I'm trying to figure if I can make some parts of my query results to be >> optional, for example, given the following query: >> >> [:find ?name ?age >> :where >> [?m :person/name ?name] >> [?m :person/age ?age]] >> >> This will return all entities that has a :person/name and :person/age. Ok, >> so, if I want to make the name mandatory and the age optional, I can do: >> >> [:find ?name ?age >> :in $ >> :where >> [?m :person/name ?name] >> [(get-else $ ?m :person/age 0) ?age]] >> >> Ok, so, for single values that works great, but what about this: >> >> [:find ?m ?name (vec ?url) >> :in $ >> :where >> [?m :person/name ?name] >> [?m :photos ?p] >> [?p :file/url ?url]] >> >> On the previous query, it fetch every person that has at least 1 photo, >> but not those that has no photos. >> >> How do I make to the query to return all entities that has name, having >> photos or not (ideally the value would be a blank list for those without >> photos)? >> >> Best regards. >> --- >> Wilker Lúcio >> http://about.me/wilkerlucio/bio >> Woboinc Consultant >> +55 81 82556600 >> > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: it's possible to query for optional parts on many relations?
Forgot to mention, I tried the (get-else) but it raises an error about cardinality many not supported, so I guessed it doesn't works here... --- Wilker Lúcio http://about.me/wilkerlucio/bio Woboinc Consultant +55 81 82556600 On Thu, Sep 18, 2014 at 7:41 PM, Wilker wrote: > Hi > > I'm trying to figure if I can make some parts of my query results to be > optional, for example, given the following query: > > [:find ?name ?age > :where > [?m :person/name ?name] > [?m :person/age ?age]] > > This will return all entities that has a :person/name and :person/age. Ok, > so, if I want to make the name mandatory and the age optional, I can do: > > [:find ?name ?age > :in $ > :where > [?m :person/name ?name] > [(get-else $ ?m :person/age 0) ?age]] > > Ok, so, for single values that works great, but what about this: > > [:find ?m ?name (vec ?url) > :in $ > :where > [?m :person/name ?name] > [?m :photos ?p] > [?p :file/url ?url]] > > On the previous query, it fetch every person that has at least 1 photo, > but not those that has no photos. > > How do I make to the query to return all entities that has name, having > photos or not (ideally the value would be a blank list for those without > photos)? > > Best regards. > --- > Wilker Lúcio > http://about.me/wilkerlucio/bio > Woboinc Consultant > +55 81 82556600 > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
it's possible to query for optional parts on many relations?
Hi I'm trying to figure if I can make some parts of my query results to be optional, for example, given the following query: [:find ?name ?age :where [?m :person/name ?name] [?m :person/age ?age]] This will return all entities that has a :person/name and :person/age. Ok, so, if I want to make the name mandatory and the age optional, I can do: [:find ?name ?age :in $ :where [?m :person/name ?name] [(get-else $ ?m :person/age 0) ?age]] Ok, so, for single values that works great, but what about this: [:find ?m ?name (vec ?url) :in $ :where [?m :person/name ?name] [?m :photos ?p] [?p :file/url ?url]] On the previous query, it fetch every person that has at least 1 photo, but not those that has no photos. How do I make to the query to return all entities that has name, having photos or not (ideally the value would be a blank list for those without photos)? Best regards. --- Wilker Lúcio http://about.me/wilkerlucio/bio Woboinc Consultant +55 81 82556600 -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.