Skip to content

Commit 2071ce5

Browse files
committed
fixes #50
1 parent 1e3ae3c commit 2071ce5

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

lib/mongo.ex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,6 @@ defmodule Mongo do
659659
@spec find_one(GenServer.server, collection, BSON.document, Keyword.t) :: BSON.document | nil
660660
def find_one(topology_pid, coll, filter, opts \\ []) do
661661
opts = opts
662-
|> Keyword.delete(:sort)
663662
|> Keyword.put(:limit, 1)
664663
|> Keyword.put(:batch_size, 1)
665664

test/mongo/find_one_test.exs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
defmodule Mongo.Test do
2+
use ExUnit.Case
3+
4+
setup_all do
5+
assert {:ok, pid} = Mongo.TestConnection.connect
6+
{:ok, [pid: pid]}
7+
end
8+
9+
test "find_one, using :sort options", %{pid: top} do
10+
11+
coll = "find_one_sort"
12+
Mongo.insert_one(top, coll, %{name: "Greta", age: 10})
13+
Mongo.insert_one(top, coll, %{name: "Tom", age: 13})
14+
Mongo.insert_one(top, coll, %{name: "Waldo", age: 5})
15+
Mongo.insert_one(top, coll, %{name: "Oska", age: 3})
16+
17+
assert {:ok, 4} == Mongo.count(top, coll, %{})
18+
19+
assert %{"name" => "Greta"} == Mongo.find_one(top, coll, %{}, sort: %{name: 1}) |> Map.take(["name"])
20+
assert %{"name" => "Waldo"} == Mongo.find_one(top, coll, %{}, sort: %{name: -1}) |> Map.take(["name"])
21+
assert %{"name" => "Oska"} == Mongo.find_one(top, coll, %{}, sort: %{age: 1}) |> Map.take(["name"])
22+
assert %{"name" => "Tom"} == Mongo.find_one(top, coll, %{}, sort: %{age: -1}) |> Map.take(["name"])
23+
end
24+
end

0 commit comments

Comments
 (0)