2015-12-17 3 views
1

При попытке найти по id я не получаю результат, используя драйвер mongodb, который поставляется с Phoenix.Mongo найти по id в Phoenix

ридми в пакете 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) 

Получить [] пустой список.

Нужно ли мне сначала преобразовать идентификатор?

Хотелось бы не использовать Ecto все время.

ответ

1

Я понял следующий код, который работает, чтобы преобразовать строку Монго идентификатор документа к тому, что может быть подключен к параметру MongoDB _ID

def objectid(id) do 
    {_, idbin} = Base.decode16(id, case: :mixed) 
    %BSON.ObjectId{value: idbin} 
end 
Смежные вопросы