Wow - that is pretty cool! Alan
On Tue, May 28, 2013 at 11:41 PM, zcaudate <z...@caudate.me> wrote: > > > 6. Insertion of `arbitrarily` formatted data: > a - books containing users: > > (adi/insert! ds [{:book {:name "Charlie and the Chocolate Factory" > :author "Roald Dahl" > :accounts #{{:user "adi3" :password "hello3" > :credits 100} > {:user "adi4" :password "hello4" > :credits 500} > {:user "adi5" :password "hello5" > :credits 500}}}} > {:book {:name "The Book and the Sword" > :author "Louis Cha" > :accounts users}}]) > > > b. users containing books > > (adi/insert! ds > [{:account {:user "adi1" :password "hello1"}} > {:account {:user "adi2" :password "hello2" > :books #{{:name "The Count of Monte Cristo" > :author "Alexander Dumas"} > {:name "Tom Sawyer" > :author "Mark Twain"} > {:name "Les Misérables" > :author "Victor Hugo"}}}}]) > > > 7. Expressive Search > > ;; Full expressiveness on searches:;;(->> ;; Find the teacher that teaches a > student called Harry > (adi/select class-datastore {:teacher/teaches/students/name "Harry"}) > (map #(-> % :teacher :name))) ;=> ("Mr. Anderson" "Mr. Carpenter" "Mr. > Blair") > (->> ;; Find all students taught by Mr Anderson > (adi/select class-datastore {:student/classes/teacher/name "Mr. Anderson" }) > (map #(-> % :student :name))) ;=> ("Ivan" "Bobby" "Erin" "Kelly" > ;; "David" "Harry" "Francis" "Jack") > (->> ;; Find all the students that have class with teachers with fish > (adi/select class-datastore {:student/classes/teacher/pets :fish }) > (map #(-> % :student :name)) sort);=> ("Anna" "Charlie" "David" "Francis" > "Harry" "Ivan" "Jack" "Kelly") > > -- > -- > 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/groups/opt_out. > > > -- -- 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/groups/opt_out.