2012-05-25 45 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})) 

檢索,文檔的功能是我打算用來獲取文件。以下功能完成這項工作。

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

這就是你如何與Karras

回答

1

答案:

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

解決這個試試這個:

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

這也沒有工作... – azeemigi

相關問題