@@ -47,6 +47,7 @@ defmodule Mongo do
47
47
"""
48
48
49
49
import Keywords
50
+ import Mongo.Utils
50
51
import Mongo.WriteConcern
51
52
52
53
require Logger
@@ -1081,19 +1082,6 @@ defmodule Mongo do
1081
1082
|> Stream . map ( fn coll -> coll [ "name" ] end )
1082
1083
end
1083
1084
1084
- defp modifier_docs ( [ { key , _ } | _ ] , type ) , do: key |> key_to_string |> modifier_key ( type )
1085
- defp modifier_docs ( map , _type ) when is_map ( map ) and map_size ( map ) == 0 , do: :ok
1086
- defp modifier_docs ( map , type ) when is_map ( map ) , do: Enum . at ( map , 0 ) |> elem ( 0 ) |> key_to_string |> modifier_key ( type )
1087
- defp modifier_docs ( list , type ) when is_list ( list ) , do: Enum . map ( list , & modifier_docs ( & 1 , type ) )
1088
-
1089
- defp modifier_key ( << ?$ , _ :: binary >> = other , :replace ) , do: raise ( ArgumentError , "replace does not allow atomic modifiers, got: #{ other } " )
1090
- defp modifier_key ( << ?$ , _ :: binary >> , :update ) , do: :ok
1091
- defp modifier_key ( << _ , _ :: binary >> = other , :update ) , do: raise ( ArgumentError , "update only allows atomic modifiers, got: #{ other } " )
1092
- defp modifier_key ( _ , _ ) , do: :ok
1093
-
1094
- defp key_to_string ( key ) when is_atom ( key ) , do: Atom . to_string ( key )
1095
- defp key_to_string ( key ) when is_binary ( key ) , do: key
1096
-
1097
1085
defp cursor ( topology_pid , cmd , opts ) do
1098
1086
% Mongo.Cursor { topology_pid: topology_pid , cmd: cmd , on_resume_token: nil , opts: opts }
1099
1087
end
@@ -1131,33 +1119,4 @@ defmodule Mongo do
1131
1119
Keyword . put_new ( opts , :timeout , @ timeout )
1132
1120
end
1133
1121
1134
- defp assign_ids ( list ) when is_list ( list ) do
1135
- Enum . map ( list , & assign_id / 1 )
1136
- |> Enum . unzip
1137
- end
1138
-
1139
- defp assign_id ( % { _id: id } = map ) when id != nil , do: { id , map }
1140
- defp assign_id ( % { "_id" => id } = map ) when id != nil , do: { id , map }
1141
- defp assign_id ( [ { _ , _ } | _ ] = keyword ) do
1142
- case Keyword . take ( keyword , [ :_id , "_id" ] ) do
1143
- [ { _key , id } | _ ] when id != nil -> { id , keyword }
1144
- [ ] -> add_id ( keyword )
1145
- end
1146
- end
1147
-
1148
- defp assign_id ( map ) when is_map ( map ) do
1149
- map |> Map . to_list |> add_id
1150
- end
1151
-
1152
- ##
1153
- # Inserts an ID to the document. A distinction is made as to whether binaries or atoms are used as keys.
1154
- #
1155
- defp add_id ( doc ) do
1156
- id = Mongo.IdServer . new
1157
- { id , add_id ( doc , id ) }
1158
- end
1159
- defp add_id ( [ { key , _ } | _ ] = list , id ) when is_atom ( key ) , do: [ { :_id , id } | list ]
1160
- defp add_id ( [ { key , _ } | _ ] = list , id ) when is_binary ( key ) , do: [ { "_id" , id } | list ]
1161
- defp add_id ( [ ] , id ) , do: [ { "_id" , id } ]
1162
-
1163
1122
end
0 commit comments