Supposons que j'ai une collection dans mongodb, où tous ses documents prennent la structure suivante.Récupérer des documents de la collection Mongo en utilisant Karras
{
"_id":5,
"key-name":"test",
"meta-data":{
"user-id":2,
"status":2
}
}
Soit suppose que je veux trouver toutes les collections où "ID utilisateur" = 2. Je peux le faire facilement Via la coquille mongo en utilisant la fonction suivante.
db.mycol.find({"meta-data.user-id" : 2})
J'ai besoin de récupérer ces documents via clojure. Par conséquent, j'ai l'ensemble des fonctions suivantes.
Voici mon code jusqu'à présent.
(ns demo.repository
(:use karras.core)
(:use karras.sugar)
(:use karras.collection))
(def mongo-connection (atom nil))
(def mandate-db (atom nil))
(defn mongo-connect []
(if (nil? @mongo-connection)
(do
(swap! mongo-connection (constantly (connect "192.168.0.6" 27017)))
(swap! mandate-db (constantly (mongo-db @mongo-connection "mydb"))))))
(defn mongo-close []
(if-not (nil? @mongo-connect)
(.close @mongo-connect)))
(defn- job-collection [] (collection @mandate-db "mycol"))
(defn retrieve-doc [id]
(fetch (job-collection) {"meta-data.user-id" id}))
retrieve-doc est l'intention de la fonction que j'utiliser pour chercher des documents. La fonction suivante fait le travail.
(fetch (job-collection) {"meta-data.user-id" id})
Et voici comment vous pouvez résoudre cela avec Karras
Cela ne fonctionnait pas ... – azeemigi