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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.