@@ -44,7 +44,7 @@ defmodule Mongo.Ecto.Conversions do
4444 :error -> :error
4545 end
4646 end
47-
47+
4848 def from_ecto_pk ( % Ecto.Query.Tagged { tag: :binary_id , value: value } , _pk ) ,
4949 do: { :ok , BSON.Decoder . decode ( value ) }
5050 def from_ecto_pk ( % Ecto.Query.Tagged { type: type , value: value } , _pk ) ,
@@ -70,6 +70,8 @@ defmodule Mongo.Ecto.Conversions do
7070 def from_ecto_pk ( _value , _pk ) ,
7171 do: :error
7272
73+ defp document ( doc , _pk ) when is_map ( doc ) and map_size ( doc ) == 0 ,
74+ do: { :ok , % { } }
7375 defp document ( doc , pk ) do
7476 map ( doc , fn { key , value } ->
7577 pair ( key , value , pk , & from_ecto_pk ( & 1 , pk ) )
@@ -103,13 +105,8 @@ defmodule Mongo.Ecto.Conversions do
103105 end )
104106
105107 case return do
106- { values , :ok } -> { :ok , fix ( values , list ) }
108+ { values , :ok } -> { :ok , values }
107109 { _values , :error } -> :error
108110 end
109111 end
110-
111- defp fix ( values , map ) when is_map ( map ) ,
112- do: Enum . into values , % { }
113- defp fix ( values , _list ) ,
114- do: values
115112end
0 commit comments