当尝试通过id找到时,我不会使用Phoenix附带的mongodb驱动程序获得结果。
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。
答案 0 :(得分:1)
我想出了以下用于将字符串mongo文档id转换为可以插入mongodb _id参数的代码
def objectid(id) do
{_, idbin} = Base.decode16(id, case: :mixed)
%BSON.ObjectId{value: idbin}
end