2012-05-25 3 views
2

모든 문서가 다음과 같은 구조를 갖는 mongodb에 컬렉션이 있다고 가정 해 보겠습니다.Karras를 사용하여 Mongo Collection에서 문서를 가져 오는 중

{ 
    "_id":5, 
    "key-name":"test", 
    "meta-data":{ 
     "user-id":2, 
     "status":2 
    } 
} 

하자 내가 모든 컬렉션 "사용자 ID"= 2를 찾으려면 가정합니다. 다음과 같은 기능을 사용하여 mongo shell을 통해 쉽게이 작업을 수행 할 수 있습니다.

db.mycol.find({"meta-data.user-id" : 2}) 

이 문서는 clojure를 통해 검색해야합니다. 따라서 다음과 같은 기능이 있습니다.

다음은 현재까지 가지고있는 코드입니다.

(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})) 

검색 - 문서 문서를 가져 오기 위해 사용하는 기능 I 의도이다. 다음 함수는 작업을 수행합니다.

(fetch (job-collection) {:meta-data {:user-id id}}) 

답변

1

답은 :

(fetch (job-collection) {"meta-data.user-id" id}) 

는 그리고 이것은 당신이 시도 Karras

1

으로이 문제를 해결 할 수있는 방법이다 이것은 또한 작동하지

(fetch (job-collection) {"meta-data.user-id" id}) 
+0

을 ... – azeemigi

관련 문제