Не позволяя Монгеру сериализоваться

Я новичок в Clojure и у меня проблемы с Монгером.

Я пытаюсь использовать Monger с другом. У меня есть это нс:

(ns cemerick.friend-demo.users
  (:require [cemerick.friend.credentials :refer (hash-bcrypt)]))

(def users (atom {"friend" {:username "friend"
                            :password (hash-bcrypt "clojure")
                            :pin "1234" ;; only used by multi-factor
                            :roles #{::user}}
                  "friend-admin" {:username "friend-admin"
                                  :password (hash-bcrypt "clojure")
                                  :pin "1234" ;; only used by multi-factor
                                  :roles #{::admin}}
(derive ::admin ::user)

Когда я пытаюсь добавить это в базу данных, используя Monger с

(mc/insert "users"  {:username "friend",
                     :password "$2a$10$YGcqRFL67J5NDo7hfkVslerDYc1iIGBy0js871wxnXxOvdvJZ4Aua",
                     :pin "1234",
                     :roles #{:cemerick.friend-demo.users/user}})

Монгер сериализует #{:cemerick.friend-demo.users/user} как "user" Есть ли способ поставить это значение как есть или есть ли способ изменить "user" в #{:cemerick.friend-demo.users/user}?

1 ответ

Решение

Это, вероятно, возвращается "user" поскольку name Функция возвращает только имя.

(name :cemerick.friend-demo.users/user)
;=> "user"

Вы могли бы сойти с звонка str на каждое ключевое слово перед вставкой их в базу данных.

(str :cemerick.friend-demo.users/user)
;=> ":cemerick.friend-demo.users/user"
Другие вопросы по тегам