diff --git a/ChangeLog.md b/ChangeLog.md index 4bcda4d..4ce5f8d 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,6 +1,9 @@ ## Changes between 1.0.0-rc1 and 1.0.0-rc2 -No changes yet. +### More flexible monger.collection/ensure-index and monger.collection/create-index + +`monger.collection/ensure-index` and `monger.collection/ensure-index` now accept fields to index as a collection +(e.g. a vector) as well as a map. It is convenient when creating multiple single-field indexes at once. diff --git a/src/monger/collection.clj b/src/monger/collection.clj index b233ece..f41e481 100644 --- a/src/monger/collection.clj +++ b/src/monger/collection.clj @@ -437,14 +437,14 @@ " ([^String collection ^Map keys] - (.createIndex (.getCollection monger.core/*mongodb-database* collection) (to-db-object keys))) + (.createIndex (.getCollection monger.core/*mongodb-database* collection) (as-field-selector keys))) ([^String collection ^Map keys options] (.createIndex (.getCollection monger.core/*mongodb-database* collection) - (to-db-object keys) + (as-field-selector keys) (to-db-object options))) ([^DB db ^String collection ^Map keys ^Map options] (.createIndex (.getCollection db collection) - (to-db-object keys) + (as-field-selector keys) (to-db-object options)))) @@ -464,14 +464,14 @@ (monger.collection/ensure-index \"pages\" {:url 1} {:unique true}) " ([^String collection ^Map keys] - (.ensureIndex (.getCollection monger.core/*mongodb-database* collection) (to-db-object keys))) + (.ensureIndex (.getCollection monger.core/*mongodb-database* collection) (as-field-selector keys))) ([^String collection ^Map keys ^Map options] (.ensureIndex (.getCollection monger.core/*mongodb-database* collection) - (to-db-object keys) + (as-field-selector keys) (to-db-object options))) ([^String collection ^Map keys ^String name ^Boolean unique?] (.ensureIndex (.getCollection monger.core/*mongodb-database* collection) - (to-db-object keys) + (as-field-selector keys) name unique?))) diff --git a/test/monger/test/indexing_test.clj b/test/monger/test/indexing_test.clj index c405454..baf7793 100644 --- a/test/monger/test/indexing_test.clj +++ b/test/monger/test/indexing_test.clj @@ -2,8 +2,7 @@ (:import org.bson.types.ObjectId java.util.Date) (:require [monger core util] - [monger.collection :as mgcol] - [monger.result :as mgres] + [monger.collection :as mc] [monger.test.helper :as helper]) (:use clojure.test [monger operators conversion] @@ -18,15 +17,17 @@ (deftest ^{:indexing true} test-creating-and-dropping-indexes (let [collection "libraries"] - (mgcol/drop-indexes collection) - (mgcol/create-index collection { "language" 1 }) + (mc/drop-indexes collection) + (mc/create-index collection { "language" 1 }) (is (= "language_1" - (:name (second (mgcol/indexes-on collection))))) - (mgcol/drop-index collection "language_1") - (is (nil? (second (mgcol/indexes-on collection)))) - (mgcol/ensure-index collection { "language" 1 } {:unique true}) + (:name (second (mc/indexes-on collection))))) + (mc/drop-index collection "language_1") + (mc/create-index collection ["language"]) + (mc/drop-index collection "language_1") + (is (nil? (second (mc/indexes-on collection)))) + (mc/ensure-index collection { "language" 1 } {:unique true}) (is (= "language_1" - (:name (second (mgcol/indexes-on collection))))) - (mgcol/ensure-index collection { "language" 1 }) - (mgcol/ensure-index collection { "language" 1 } { :unique true }) - (mgcol/drop-indexes collection))) + (:name (second (mc/indexes-on collection))))) + (mc/ensure-index collection { "language" 1 }) + (mc/ensure-index collection { "language" 1 } { :unique true }) + (mc/drop-indexes collection)))