diff --git a/src/Sokil/Mongo/Search.php b/src/Sokil/Mongo/Search.php
index <HASH>..<HASH> 100644
--- a/src/Sokil/Mongo/Search.php
+++ b/src/Sokil/Mongo/Search.php
@@ -140,15 +140,30 @@ class Search implements \Iterator, \Countable
         return $this->where('_id', $id);
     }
     
-    public function byIdList(array $idList)
+    /**
+     * get list of MongoId objects from array of strings, MongoId's and Document's
+     * 
+     * @param array $list
+     * @return type
+     */
+    public function getIdList(array $list)
     {
-        return $this->whereIn('_id', array_map(function($id) {
-            if($id instanceof \MongoId) {
-                return $id;
+        return array_map(function($element) {
+            if($element instanceof \MongoId) {
+                return $element;
+            }
+            
+            if($element instanceof Document) {
+                return $element->getId();
             }
             
-            return new \MongoId($id);
-        }, $idList));
+            return new \MongoId($element);
+        }, $list);
+    }
+    
+    public function byIdList(array $idList)
+    {
+        return $this->whereIn('_id', $this->getIdList($idList));
     }
     
     /**
add helper to get list of MongoId objects from array of strings, MongoId's and Document's