Commit graph

212 commits

Author SHA1 Message Date
Michael S. Klishin
a09c55096c Add ability to connect using ServerAddress and MongoOptions, closes #15 2012-02-28 20:08:05 +04:00
Michael S. Klishin
60688e7482 Merge branch 'toby-commands' 2012-02-21 15:06:29 +04:00
Toby Hede
9cc2d6dd19 insert into collection before re-index
just to see if that makes a diff
2012-02-21 13:13:20 +11:00
Toby Hede
219c9fa41c temporarily remove reindex collection due to strange CI error 2012-02-21 13:07:25 +11:00
Toby Hede
f36528b592 command namespace and basic commands 2012-02-21 13:02:01 +11:00
Michael S. Klishin
7747325030 Make monger.core/get-db-names return a set 2012-02-20 16:06:05 +04:00
Michael Klishin
7348ca9f2e Merge pull request #12 from tobyhede/63870b1136e63865ba349faa159d473b3cab79a7
new core/get-db-names
2012-02-20 04:00:40 -08:00
Toby Hede
63870b1136 add get-db-names to core 2012-02-20 22:46:07 +11:00
Michael S. Klishin
96d5b4a66f Eliminate recently introduced reflection warnings 2012-02-19 05:32:50 +04:00
Michael S. Klishin
4a0fb343ec Commit unsaved change 2012-02-18 19:04:56 +04:00
Michael S. Klishin
345ee691eb Introduce monger.collection/remove-by-id 2012-02-18 19:02:43 +04:00
Michael S. Klishin
fdcad90cd8 Introduce monger.collection/update-by-id 2012-02-18 18:56:34 +04:00
Michael S. Klishin
13135c10dd Make sure that tests that perform authentication and drop databases do not affect authentication tests
Fixes the build.
2012-02-18 15:59:33 +04:00
Michael S. Klishin
e29655a7fd Cosmetics 2012-02-18 15:46:18 +04:00
Michael Klishin
1494cc5ad4 Merge pull request #11 from tobyhede/b51aae652403e98c4979191bfda60a776272836f
monger.db namespace and funcs
2012-02-18 03:43:06 -08:00
Toby Hede
157cbc698f amend find-map-by-id to accept fields as 3rd parameter
fix atomic update tests that broke … being passed fields as the param, but mismatch in api
2012-02-18 21:57:45 +11:00
Toby Hede
3151587d67 add-user and test, db ns 2012-02-17 19:12:16 +11:00
Toby Hede
62e0fb945e test for drop database 2012-02-15 21:32:45 +11:00
Toby Hede
300220da15 moved get-collection-names to new db ns 2012-02-15 21:00:01 +11:00
Toby Hede
d5cce8c97b Merge remote-tracking branch 'upstream/master' 2012-02-14 21:49:56 +11:00
Toby Hede
66e5e929ad add get-collections-names to core 2012-02-14 21:48:59 +11:00
Michael S. Klishin
f6a80fa40a Make sure monger.collection/find-by-id and /find-map-by-id fail fast when id is nil 2012-02-13 22:52:03 +04:00
Michael S. Klishin
fe421cc0db Make it possible to opt-out of field keywordization in the query DSL
An example:

``` clojure
(with-collection coll
  (find {})
  (limit 3)
  (sort { :population -1 })
  (keywordize-fields false))
```
2012-02-12 10:13:39 +04:00
Toby Hede
31aff189d3 find-one-as-map accepts fields as 3rd parameter
partial resolution of: https://github.com/michaelklishin/monger/issues/8
2012-02-12 15:43:33 +11:00
Michael S. Klishin
b301575fa1 Begin splitting monger.test.collection into individual test namespaces 2012-02-07 08:13:10 +04:00
Michael S. Klishin
d2408faea6 Introduce monger.core/authenticate 2012-02-02 09:53:26 +04:00
Michael S. Klishin
0bfe0582c0 Ditto for monger.collection/find and friends 2012-01-29 07:51:21 +04:00
Michael S. Klishin
3df399c2be Ditto for monger.collection/distinct 2012-01-29 07:26:21 +04:00
Michael S. Klishin
b76cffcd1a Ditto for monger.collection/save 2012-01-29 06:58:02 +04:00
Michael S. Klishin
afa516fff6 Explicit database parameter for monger.collection/insert-batch, /count, /empty?, /any? 2012-01-29 06:31:28 +04:00
Michael S. Klishin
e5af694cc7 Support explicit database parameter for monger.collection/insert 2012-01-29 06:04:11 +04:00
Michael S. Klishin
7b719baf7f A test that demonstrates querying with date ranges 2012-01-26 17:26:51 +04:00
Oleksandr Petrov
d081a201da Adding non-array tests for $nin and $in operators. 2012-01-25 22:19:51 +01:00
Oleksandr Petrov
9af8a13ea9 Merge branch 'master' of https://github.com/michaelklishin/monger 2012-01-25 21:56:09 +01:00
Oleksandr Petrov
7ab8d51a84 Adding missing $nin operator. 2012-01-25 21:56:06 +01:00
Michael S. Klishin
12a46ca4ab Demonstrate querying with comparison operators ($lt, etc) over date fields and Joda Time integration 2012-01-04 19:56:38 +04:00
Michael S. Klishin
1187719ac1 Extend monger.gridfs.GridFSInputFileFactory to support input streams 2011-12-31 16:52:23 +04:00
Michael S. Klishin
cb9ed8edb5 monger.gridfs/find-one-as-map is next to useless, remove it
It does not allow you access file content stream.
2011-12-31 16:27:56 +04:00
Michael S. Klishin
a292f082e8 Implement monger.gridfs/find-one and /find-one-as-map 2011-12-31 16:23:49 +04:00
Michael S. Klishin
7eec647a97 Use unqualified function names for what we :use 2011-12-31 15:02:21 +04:00
Michael S. Klishin
7da99d98a3 Implement monger.gridfs.GridFSInputFileFactory for java.io.File instances 2011-12-31 15:01:00 +04:00
Michael S. Klishin
ced9b50153 Make monger.gridfs.IOFactory implementation for String to work the same way as clojure.java.io/IOFactory one does
It treats string arguments as local filesystem paths
2011-12-31 14:57:17 +04:00
Michael S. Klishin
b649c7977e Cosmetics 2011-12-31 06:59:21 +04:00
Michael S. Klishin
eab4405012 Initial bits of monger.gridfs 2011-12-31 06:56:02 +04:00
Michael S. Klishin
f3efbcec16 One more query DSL composition example, introduce monger.query/partial-query 2011-12-31 04:25:26 +04:00
Michael S. Klishin
5bbac64801 Query DSL composition example 2011-12-31 03:23:52 +04:00
Michael S. Klishin
1cb024dcad Add read preference support for monger.query DSL 2011-12-30 17:19:44 +04:00
Michael S. Klishin
ef3c224441 Fix these early tests to use locals 2011-12-30 17:10:36 +04:00
Michael S. Klishin
c25609a5c3 monger.conversion/to-object-id 2011-12-28 19:46:47 +04:00
Oleksandr Petrov
1a8eb1ef80 Added docs, improved test suite.
Removed (seq) method call from find-maps, since DBCursor implements Iterable interface. 
Added empty? method for collection.
2011-12-23 11:56:14 +01:00
Michael S. Klishin
3357179659 One more spot 2011-12-18 23:25:28 +04:00
Michael S. Klishin
3b3bb2287a Extract test DB connection into a helper, use it for every namespace that hits the database 2011-12-18 23:24:23 +04:00
Michael S. Klishin
cd1bd23b3e Switch test suite to monger.testing/defcleaner 2011-12-18 23:16:54 +04:00
Michael S. Klishin
19a9beb046 Add test examples that demonstrate java.util.Date and java.util.Calendar conversion 2011-12-16 11:42:13 +04:00
Michael S. Klishin
57c4ad6e9b Switch to clojure.java.io/resource here 2011-12-16 11:12:55 +04:00
Oleksandr Petrov
e6f81e52a7 Merge branch 'master' of https://github.com/michaelklishin/monger 2011-12-03 18:40:52 +01:00
Oleksandr Petrov
611d9666bd Added get-write-concern function. 2011-12-03 18:39:02 +01:00
Michael S. Klishin
8127d26442 Fix monger.util/get-id for persistent maps with string keys 2011-11-29 15:44:55 +04:00
Michael S. Klishin
be06397849 Introduce monger.collection/any?
Useful for detecting duplicate documents and so on
2011-11-28 20:12:19 +04:00
Oleksandr Petrov
01063a3476 Removing outdated comment 2011-11-25 17:33:10 +01:00
Oleksandr Petrov
94acfdec54 Changing 'is' test to 'are' for brevity. 2011-11-19 23:41:53 +01:00
Michael S. Klishin
ddcbf2d068 One more test for clojure.data.json integration 2011-11-16 01:00:18 +04:00
Michael S. Klishin
d9f5ae5951 Move pagination helper to monger.internal.pagination 2011-11-15 03:48:31 +04:00
Michael S. Klishin
3534e579b7 Add pagination support to monger.query DSL
An example:

(with-collection coll
                  (find {})
                  (paginate :page 1 :per-page 3)
                  (sort { :title 1 }))
2011-11-15 03:44:19 +04:00
Michael S. Klishin
9b5eee13e0 Port many monger.test.querying tests to use new monger.query DSL 2011-11-15 03:10:55 +04:00
Michael S. Klishin
0536244dce Merge branch 'master' into query-dsl
Conflicts:
	src/monger/operators.clj
2011-11-14 15:23:47 +04:00
Michael S. Klishin
bd133c1afc Initial version of the monger.query DSL
Here is what it looks like:

(with-collection "docs"
  (find { :inception_year { $lt 2000 $gte 2011 } })
  (fields { :inception_year 1 :name 1 })
  (skip 10)
  (limit 20)
  (batch-size 50)
  (hint "my-index-name")
  (snapshot))
2011-11-14 15:15:43 +04:00
Oleksandr Petrov
8c93095393 Adding test demonstrating regexp document search. 2011-11-13 17:47:26 +01:00
Oleksandr Petrov
047d5b6a88 Separating operators to Logical Operators, Query Operators and Atomic Modifiers.
Adding docs to most of operators (still TBC), giving more examples, improving test suite.
2011-11-11 18:55:43 +01:00
Michael S. Klishin
99c46c4860 Merge branch 'master' into query-dsl 2011-11-09 12:44:56 +04:00
Michael S. Klishin
c109702117 Rewort $operator macros to evaluate to strings and not functions
Unlike Casbah and Korma, we already use query language data structures as close to what MongoDB uses as possible
(Clojure maps, vectors, numerics and strings are effectively JSON) so we don't need any layers on top, they won't improve
anything.

Having these operators is nice beacuse if you use atomic operators a lot, this will make sure Clojure compiler catches
typos for you. It is completely opt-in, however.

Finally, having a function inserted carries certain runtime performance cost and having $operator macros
that evaluate to themselves does not.

Per discussion with Alex.
2011-11-09 12:40:22 +04:00
Oleksandr Petrov
bb169d3ae3 Adding operators DSL in order to use Clojure functions instead of hashes.
Casbah has a similar concept called Bareword Operators.
Korma uses operators a bit differently, but idea is quite same, too. 

One of the obvious advantages is that you can make sure you didn't screw make a typo 
in operator name during compile-time. Plus, we can guarantee that there is a subset
of used / supported operators, and add them gradually, keeping track of them in one place, 
which will simplify tests, too.
2011-11-08 00:12:10 +01:00
Michael S. Klishin
88fa9f07bb Query DSL work preparation 2011-11-06 23:03:36 +04:00
Michael S. Klishin
6dd3491d39 A few more test examples using "advanced" query operators 2011-11-06 04:59:27 +04:00
Michael S. Klishin
758fb9e7e6 Support skip & limit for monger.collection/find and /find-maps
As test example demonstrates, closely following DBCollection and DBCursor API has one downside:
queries that use sorting look really ugly. So monger needs to come up with a DSL  la Casbah or SQLKorma
to make this really nice.
2011-11-05 09:45:54 +04:00
Michael S. Klishin
7a9dcbf15d Tests/examples for the $rename modifier 2011-10-31 02:52:44 +04:00
Michael S. Klishin
f29d62f181 Tests/examples for $pull and $pullAll modifiers 2011-10-31 02:40:55 +04:00
Michael S. Klishin
60ca5c04a2 Tests/examples for the $pop modifier 2011-10-31 02:30:07 +04:00
Michael S. Klishin
ec26008c4f Tests/examples for the $addToSet modifier 2011-10-31 02:20:54 +04:00
Michael S. Klishin
6615c16675 Tests/examples for the $pushAll modifier
Also demonstrate a common mistake when $push is used instead of $pushAll with an
array value.
2011-10-31 00:49:44 +04:00
Michael S. Klishin
5dba219537 Tests/examples for the $push modifier 2011-10-31 00:12:43 +04:00
Michael S. Klishin
537969ff09 Tests/examples for the modifier 2011-10-30 23:57:33 +04:00
Michael S. Klishin
d855762546 Tests/examples for the $inc modifier 2011-10-30 19:01:01 +04:00
Michael S. Klishin
9bd9b93fa1 Initial set of tests for atomic modifiers
Mostly to serve as examples but also to see where we may be beneficial
for Monger to offer special support for some of them.
2011-10-30 17:41:11 +04:00
Michael S. Klishin
746d83459e Rename function that sets *default* write concern 2011-10-18 18:11:51 +04:00
Michael S. Klishin
fbd00ee151 Use WriteConcern/SAFE by default
WriteConcern/NORMAL is ridiculously dangerous and most apps simply do not have performance
requirements to justify completely ignoring server responses.
2011-10-18 17:50:28 +04:00
Michael S. Klishin
c820d5885a Use monger.result/ok? and do not compare to `true' here 2011-10-16 18:19:26 +04:00
Oleksandr Petrov
edbaec0a3b Merge branch 'master' of https://github.com/michaelklishin/monger 2011-10-16 16:04:55 +02:00
Oleksandr Petrov
410ef23b03 Adding some docs and minor tests for monger.core/command. 2011-10-16 15:39:21 +02:00
Michael S. Klishin
ddf3156c8e Load mapper function from .js resource 2011-10-16 16:02:13 +04:00
Michael S. Klishin
4336b6f414 Introduce monger.js/load-resource, a helper that loads JS files from the classpath
Yes, to be used with map/reduce and so on.
2011-10-16 15:54:53 +04:00
Michael S. Klishin
4be37a4f67 Formatting 2011-10-16 15:54:09 +04:00
Michael S. Klishin
3963808152 Introduce monger.collection/distinct 2011-10-16 14:19:04 +04:00
Michael S. Klishin
d639fab9cf Two more reflection warnings 2011-10-15 04:17:59 +04:00
Michael S. Klishin
946348a8d9 Nuke a couple of reflection warnings 2011-10-15 04:16:02 +04:00
Michael S. Klishin
c62c433559 Initial map/reduce support 2011-10-14 22:18:35 +04:00
Michael S. Klishin
7d79866eff To serialize joda.time.DateTime to JSON, use ISO date time format 2011-10-14 01:01:40 +04:00
Michael S. Klishin
a7264122e3 Use clojure.test/are and namespace aliases 2011-10-11 21:04:21 +04:00
Michael S. Klishin
c48c87fd2f Skip 1M documents test, it requires JVM parameters tweaking (-Xmx) for most people 2011-10-11 20:59:42 +04:00
Oleksandr Petrov
75d52331bf Adding some docs and tests to collection. 2011-10-11 18:55:40 +02:00