2015-12-17 25 views
1

當試圖通過id查找時,我沒有使用Phoenix附帶的mongodb驅動程序得到結果。Mongo在Phoenix找到id

在MongoDB的包自述有以下例子

Mongo.find(MongoPool, "test-collection", %{}, limit: 20) 
Mongo.find(MongoPool, "test-collection", %{"field" => %{"$gt" => 0}}, limit: 20, sort: %{"field" => 1}) 

但是當我試圖像下面的我沒有得到任何結果。

cursor = Mongo.find(AppName.Repo.Pool, "test-collection", %{"_id" => "1df66b12302b812298308dba"}) 
Enum.to_list(cursor) 

獲取[]空列表。

我是否需要先將id轉換成某種東西?

我想不必一直使用Ecto。

回答

1

我想通了,下面的代碼工作將字符串轉換爲蒙戈文檔ID什麼可以插入到一個MongoDB的_id參數

def objectid(id) do 
    {_, idbin} = Base.decode16(id, case: :mixed) 
    %BSON.ObjectId{value: idbin} 
end