Packages

MongoDB driver for Elixir

Retired package: Deprecated - Use mongodb_driver instead, see https://github.com/elixir-mongo/mongodb_ecto/tree/1cc91b087#migrating-to-20 for migration advice

Current section

Files

Jump to
mongodb lib mongo query.ex
Raw

lib/mongo/query.ex

defmodule Mongo.Query do
@moduledoc false
defstruct action: nil, extra: nil, encoded?: false
end
defimpl DBConnection.Query, for: Mongo.Query do
import Mongo.Messages, only: [op_reply: 1, op_reply: 2]
def parse(query, _opts), do: query
def describe(query, _opts), do: query
def encode(query, params, _opts) do
if query.encoded? do
params
else
Enum.map(params, fn
nil -> ""
doc -> BSON.Encoder.document(doc)
end)
end
end
def decode(_query, :ok, _opts),
do: :ok
def decode(_query, wire_version, _opts) when is_integer(wire_version),
do: wire_version
def decode(_query, op_reply(docs: docs) = reply, _opts),
do: op_reply(reply, docs: BSON.Decoder.documents(docs))
end