diff -u b/lib/Drupal/mongodb/Path.php b/lib/Drupal/mongodb/Path.php
--- b/lib/Drupal/mongodb/Path.php
+++ b/lib/Drupal/mongodb/Path.php
@@ -16,6 +16,8 @@
  */
 class Path implements PathInterface {
 
+  const ALIAS_COLLECTION = 'url_alias';
+
   /**
    * The object wrapping the MongoDB database object.
    *
@@ -24,13 +26,6 @@
   protected $mongo;
 
   /**
-   * MongoDB collection name.
-   *
-   * @var string
-   */
-  protected $mongo_collection;
-
-  /**
    * Module handler.
    *
    * @var \Drupal\Core\Extension\ModuleHandlerInterface
@@ -40,15 +35,14 @@
   /**
    * Constructs a Path CRUD object.
    *
-   * @param MongoCollectionFactory $mongo
+   * @param \Drupal\mongodb\MongoCollectionFactory $mongo
    *   The object wrapping the MongoDB database object.
    *
-   * @param string $mongo_collection
-   *   Mongo collection name to use. Defaults to "url_alias".
+   * @param \Drupal\core\Extension\ModuleHandlerInterface $module_handler
+   *   The module handler.
    */
-  public function __construct(MongoCollectionFactory $mongo, ModuleHandlerInterface $module_handler, $mongo_collection = 'url_alias') {
+  public function __construct(MongoCollectionFactory $mongo, ModuleHandlerInterface $module_handler) {
     $this->mongo = $mongo;
-    $this->mongo_collection = $mongo_collection;
     $this->module_handler = $module_handler;
   }
 
@@ -56,7 +50,7 @@
    * @return \MongoCollection
    */
   public function urlAlias() {
-    $ret = $this->mongo->get($this->mongo_collection);
+    $ret = $this->mongo->get(static::ALIAS_COLLECTION);
     return $ret;
   }
 
@@ -94,7 +88,7 @@
     $hook = 'path_update';
     // @TODO use separate collection for autoincrement keys and use findAndModify()?
     if (empty($pid)) {
-      $result = $this->mongo->get($this->mongo_collection)
+      $result = $this->urlAlias()
         ->find(array(), array('_id' => TRUE))
         ->sort(array('_id' => -1))
         ->limit(1)
@@ -103,7 +97,7 @@
       $hook = 'path_insert';
     }
 
-    $response = $this->mongo->get($this->mongo_collection)->update(array('_id' => $pid), array('$set' => $fields), array('upsert' => TRUE));
+    $response = $this->urlAlias()->update(array('_id' => $pid), array('$set' => $fields), array('upsert' => TRUE));
 
     if (empty($response['err'])) {
       $fields['pid'] = $pid;
@@ -123,10 +117,13 @@
     }
     $result = $this->urlAlias()->findOne($conditions);
     // $result will be NULL on failure, but PathInterface::load requires FALSE.
-    if (!isset($result)) {
+    if (empty($result)) {
       $result = FALSE;
     }
-    $result['pid'] = $result['_id'];
+    else {
+      // Code in core assumes the id is called "pid", not "_id".
+      $result['pid'] = $result['_id'];
+    }
     return $result;
   }
 
@@ -138,6 +135,7 @@
    */
   public function delete($conditions) {
     $path = $this->load($conditions);
+    // Code in core assumes the id is called "pid", not "_id".
     if (isset($conditions['pid'])) {
       $conditions['_id'] = $conditions['pid'];
       unset($conditions['pid']);
@@ -164,17 +162,18 @@
     );
     $select = array('source' => 1, 'alias' => 1);
 
+    $collection = $this->urlAlias();
     if ($langcode == Language::LANGCODE_NOT_SPECIFIED) {
       $args['langcode'] = Language::LANGCODE_NOT_SPECIFIED;
-      $cursor = $this->mongo->get($this->mongo_collection)->find($args, $select)->sort(array('_id' => 1));
+      $cursor = $collection->find($args, $select)->sort(array('_id' => 1));
     }
     elseif ($langcode < Language::LANGCODE_NOT_SPECIFIED) {
       $args['langcode'] = array('$in' => array($langcode, Language::LANGCODE_NOT_SPECIFIED));
-      $cursor = $this->mongo->get($this->mongo_collection)->find($args, $select)->sort(array('langcode' => 1, '_id' => 1));
+      $cursor = $collection->find($args, $select)->sort(array('langcode' => 1, '_id' => 1));
     }
     else {
       $args['langcode'] = array('$in' => array($langcode, Language::LANGCODE_NOT_SPECIFIED));
-      $cursor = $this->mongo->get($this->mongo_collection)->find($args, $select)->sort(array('langcode' => -1, '_id' => 1));
+      $cursor = $collection->find($args, $select)->sort(array('langcode' => -1, '_id' => 1));
     }
 
     $result = array();
@@ -203,17 +202,18 @@
     );
     $select = array('alias' => 1);
 
+    $collection = $this->urlAlias();
     if ($langcode == Language::LANGCODE_NOT_SPECIFIED) {
       $args['langcode'] = Language::LANGCODE_NOT_SPECIFIED;
-      $cursor = $this->mongo->get($this->mongo_collection)->find($args, $select)->sort(array('_id' => -1))->limit(1);
+      $cursor = $collection->find($args, $select)->sort(array('_id' => -1))->limit(1);
     }
     elseif ($langcode > Language::LANGCODE_NOT_SPECIFIED) {
       $args['langcode'] = array('$in' => array($langcode, Language::LANGCODE_NOT_SPECIFIED));
-      $cursor = $this->mongo->get($this->mongo_collection)->find($args, $select)->sort(array('langcode' => -1, '_id' => -1))->limit(1);
+      $cursor = $collection->find($args, $select)->sort(array('langcode' => -1, '_id' => -1))->limit(1);
     }
     else {
       $args['langcode'] = array('$in' => array($langcode, Language::LANGCODE_NOT_SPECIFIED));
-      $cursor = $this->mongo->get($this->mongo_collection)->find($args, $select)->sort(array('langcode' => 1, '_id' => -1))->limit(1);
+      $cursor = $collection->find($args, $select)->sort(array('langcode' => 1, '_id' => -1))->limit(1);
     }
 
     if ($alias = $cursor->getNext()) {
@@ -241,17 +241,18 @@
     );
     $select = array('source' => 1);
 
+    $collection = $this->urlAlias();
     if ($langcode == Language::LANGCODE_NOT_SPECIFIED) {
       $args['langcode'] = Language::LANGCODE_NOT_SPECIFIED;
-      $cursor = $this->mongo->get($this->mongo_collection)->find($args, $select)->sort(array('_id' => -1))->limit(1);
+      $cursor = $collection->find($args, $select)->sort(array('_id' => -1))->limit(1);
     }
     elseif ($langcode > Language::LANGCODE_NOT_SPECIFIED) {
       $args['langcode'] = array('$in' => array($langcode, Language::LANGCODE_NOT_SPECIFIED));
-      $cursor = $this->mongo->get($this->mongo_collection)->find($args, $select)->sort(array('langcode' => -1, '_id' => -1))->limit(1);
+      $cursor = $collection->find($args, $select)->sort(array('langcode' => -1, '_id' => -1))->limit(1);
     }
     else {
       $args['langcode'] = array('$in' => array($langcode, Language::LANGCODE_NOT_SPECIFIED));
-      $cursor = $this->mongo->get($this->mongo_collection)->find($args, $select)->sort(array('langcode' => 1, '_id' => -1))->limit(1);
+      $cursor = $collection->find($args, $select)->sort(array('langcode' => 1, '_id' => -1))->limit(1);
     }
 
     if ($source = $cursor->getNext()) {
@@ -318,7 +319,7 @@
    * @return array
    *   Array of items to be displayed on the current page.
    */
-  public function adminListing($header, $keys = NULL) {
+  public function getAliasesForAdminListing($header, $keys = NULL) {
     if ($keys) {
       $criteria = array(
         // Replace wildcards with PCRE wildcards.
@@ -344,6 +345,7 @@
     $alias_arrays = $this->urlAlias()->find($criteria)->limit(50)->sort($order);
     $alias_objects = array();
     foreach ($alias_arrays as $alias_array) {
+      // Code in core assumes the id is called "pid", not "_id".
       $alias_array['pid'] = $alias_array['_id'];
       $alias_objects[] = (object) $alias_array;
     }
