Uzyskuję dostęp do bazy danych Mongo z Clojure przy użyciu biblioteki Monger. Jedną z rzeczy, która mnie denerwuje, jest przełączanie się pomiędzy instancjami i ciągami ObjectId.Automatyczne odwzorowywanie obiektu Mongodb ObjectId na i z ciągu znaków
Na przykład, ten kod (mc/find-maps "posts" {})
oceni na mapach o wartości _id
wpisu ustawiony instancji ObjectId
klasy, natomiast w moim app Uważam to bardziej przydatne, aby po prostu mieć go jako ciąg, dla których wiem, że jest unikalny.
Z drugiej strony dla wyrażeń takich jak: (mc/find-map-by-id "posts" (new ObjectId id))
gdzie używam obiektu String dla parametru id
, muszę go użyć do skonstruowania instancji ObjectId
.
Czy istnieje sposób, aby wartości _id
konwertować między ciągów w aplikacji i ObjectId na stronie mongo automatycznie i przejrzyście? Jakaś opcja, która po włączeniu tworzy mapy z ciągami reprezentującymi identyfikatory i odwrotnie, przekształca ciągi reprezentacji identyfikatorów ids id obiektów, gdy są używane jako parametry w zapytaniach?
Jeśli nie, jakie inne strategie są dostępne?