ClojureでMongoDBにアクセスしてみる2

マップの中にマップがあるような場合のアクセス方法。
get-in関数を使って、キーを順番に指定して取り出す。

実行結果

user> (use 'somnium.congomongo)
nil
user> (mongo! :db "mydb")
true
user> (insert! :robots {:name1 "robby1" :name2 {:name-2-1 "robby2-1" :name3 {:name3-1 "name3-1"}}})
{:_id #<ObjectId 4d0d9747da33c172eaf7bc9b>, :name2 {:name3 {:name3-1 "name3-1"}, :name-2-1 "robby2-1"}, :name1 "robby1"}
user> (fetch :robots)
({:name2 {:name3 {:name3-1 "name3-1"}, :name-2-1 "robby2-1"}, :name1 "robby1", :_id #<ObjectId 4d0d9747da33c172eaf7bc9b>})
user> (get-in (fetch-one :robots) [:name2 :name3])
{:name3-1 "name3-1"}
user> (get-in (fetch-one :robots) [:name2 :name3 :name3-1])
"name3-1"