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
Michael S. Klishin
886a270bf9
Introduce monger.collection/find-seq
...
For cases when you do not want to work with DBCursors but also
do not need conversion to maps that monger.collection/find-maps does.
2011-10-08 12:08:26 +04:00
Michael S. Klishin
db6721ddab
Brush up conversion tests
2011-10-08 04:46:49 +04:00
Michael S. Klishin
4999891e59
Alias monger.collection that we use very heavily in monger.test.collection
2011-10-08 04:44:13 +04:00
Michael S. Klishin
59da9db80d
Improve this test
2011-10-08 04:42:10 +04:00
Michael S. Klishin
69d7abb747
Ditto
2011-10-08 04:39:18 +04:00
Michael S. Klishin
d05b5bec8c
Demonstrate iteration over DBCursors with iterator-seq
2011-10-08 03:01:04 +04:00
Michael S. Klishin
625db17646
A few basic batch insert stress tests
2011-10-08 02:29:16 +04:00
Michael S. Klishin
c5850bd59f
Get rid of monger.util/with-ns
...
It was an awful hack, now replaced by a less awful one.
2011-09-19 12:31:29 +04:00
Michael S. Klishin
5e12f9aec2
Introduce monger.core/connect! and monger.core/set-db!
...
Even though it is not idiomatic Clojure to mutate vars like this,
it is very common for many applications to only use one MongoDB
connection (so, no per-thread var rebinding) and one main database.
For those cases, these function eliminate the need for mundaine
hacks with namespace switching.
2011-09-19 12:14:48 +04:00
Michael S. Klishin
a6d96da5bd
Another attemp to make CI pass
2011-09-14 14:50:55 +04:00
Michael S. Klishin
416cb5b315
Lets see if this is what causes CI to fail
2011-09-14 14:47:42 +04:00
Michael S. Klishin
5145f45afa
Make sure our test suite uses both ObjectId instances as well as string ids
2011-09-14 14:04:34 +04:00
Michael S. Klishin
7227bd6436
Add one more test that demonstrates monger.collection/update behavior with the $set operator
2011-09-12 14:49:28 +04:00
Michael S. Klishin
57d8e62058
monger.util/get-id now can also handle Clojure maps, using both :_id and "_id" as id keys
2011-09-11 23:16:36 +04:00
Michael S. Klishin
6d12e34465
monger.convertion => monger.conversion
2011-09-11 23:02:46 +04:00
Oleksandr Petrov
5a94424402
Adding monger.utils/get-id protocol extension for DBObject.
2011-09-11 16:13:14 +02:00
Oleksandr Petrov
2f82ac2bb6
Adding purge-collection function, refactoring purge-*-collection methods.
2011-09-11 12:48:42 +02:00
Michael S. Klishin
fadf939cd5
Implement monger.collection/rename
2011-09-10 08:46:17 +04:00
Michael S. Klishin
e681bf1a1c
Implement monger.core/command
2011-09-10 08:46:10 +04:00
Michael S. Klishin
1f091ab735
Implement monger.collection/create
2011-09-10 08:19:19 +04:00
Michael S. Klishin
24b2dbe516
Implement monger.collection/exists? and monger.collection/drop
2011-09-10 08:09:32 +04:00
Michael S. Klishin
b90834fdc5
Implement index operations
2011-09-10 07:45:47 +04:00
Michael S. Klishin
2ab84f2593
Reformat
2011-09-09 06:59:34 +04:00
Michael S. Klishin
4700213bd5
Introduce monger.collection/find-maps
2011-09-03 18:31:26 +04:00
Michael S. Klishin
d4603c2be6
Reduce amount of duplication in tests
2011-09-03 01:09:54 +04:00
Michael S. Klishin
a670b31462
Introduce monger.collection/find-map-by-id
2011-09-03 01:02:46 +04:00
Michael S. Klishin
7e29ff457d
Introduce monger.collection/find-one-as-map
2011-09-02 04:08:31 +04:00
Michael S. Klishin
f8845111f2
Make monger.collection/find-one return a DBObject, not a cursor
2011-09-02 03:28:40 +04:00
Michael S. Klishin
adfa422a51
Add a test that harnesses monger.collection/save with new DBObjects (useful for obtaining of the generated _id)
2011-09-02 03:19:35 +04:00
Michael S. Klishin
be1355b5b9
Add specialized identity convertion of DBObjects, makes it very easy to insert an object and immediately fetch its _id from it
2011-09-02 03:10:18 +04:00
Michael S. Klishin
e5e04f8d51
Add test for monger.result/updated-existing? with WriteResult
2011-09-02 01:46:02 +04:00
Michael S. Klishin
c688bfa45b
Formatting
2011-09-02 01:38:49 +04:00
Michael S. Klishin
2ff340ab08
Implement monger.result.MongoCommandResult/updated-existing?
2011-09-01 22:29:46 +04:00
Michael S. Klishin
8fdfe32ccb
monger.errors => monger.result, extend MongoCommandResult protocol with has-error?
2011-09-01 22:16:29 +04:00
Michael S. Klishin
e5d5b0b248
Add test for upserting a document using monger.collection/update
2011-08-31 16:48:57 +04:00
Michael S. Klishin
837ab83317
Two more cases for insert-batch
2011-08-29 20:54:36 +04:00
Michael S. Klishin
5473ff10ba
Refactor to use monger.collection/insert-batch here
2011-08-29 20:53:30 +04:00
Michael S. Klishin
436cc4a00f
Use at least one document with date in the test suite
2011-08-29 20:51:11 +04:00
Michael S. Klishin
1ee5436841
Initial implementation of monger.collection/find-one
2011-08-29 19:36:11 +04:00
Michael S. Klishin
e9adae10c6
Eliminate some reflection warnings in tests
2011-08-29 14:02:15 +04:00
Michael S. Klishin
861be36c54
Implement monger.collection/save
2011-08-16 11:36:52 +04:00
Michael S. Klishin
e896a5dfc3
No need to use monger.core here
2011-08-16 09:27:30 +04:00
Michael S. Klishin
79e3f8ad20
Implement monger.collection/update
2011-08-16 01:36:06 +04:00
Michael S. Klishin
b3d82ce3a2
Add monger.collection/count version that takes conditions argument
2011-08-16 00:06:40 +04:00
Michael S. Klishin
8bd4378f93
Introduce monger.core/Countable protocol
2011-08-15 01:43:02 +04:00
Michael S. Klishin
1bba60418e
Use random-uuid here
2011-08-15 01:38:11 +04:00
Michael S. Klishin
f096c032cd
Implement fetching of partial documents
2011-08-15 01:09:25 +04:00
Michael S. Klishin
14a0aa515c
Additional tests for monger.collection/remove
2011-08-14 22:58:31 +04:00
Michael S. Klishin
90daa7c967
Implement partial document fetching for monger.collection/find-by-id
2011-08-14 22:36:54 +04:00
Michael S. Klishin
2620263103
Switch to *mongodb-connection* and *mongodb-database* instead of explicitly passing values around
2011-08-14 22:19:44 +04:00
Michael S. Klishin
11ad2168ed
Initial bits of monger.collection/find and monger.collection/find-by-id
2011-08-14 08:03:29 +04:00
Michael S. Klishin
3bf2284611
Initial implementation of inserts with write concerns and batch inserts
2011-08-14 06:51:14 +04:00
Michael S. Klishin
97f537d176
Apparently MongoDB returns "ok" as 1.0
2011-08-14 05:15:46 +04:00
Michael S. Klishin
a073d7ed20
Introduce monger.errors.ok?
2011-08-14 03:56:31 +04:00
Michael S. Klishin
bef972d1ab
Wrapping up with monger.convertion.ConvertFromDBObject
2011-08-14 02:15:38 +04:00
Michael S. Klishin
3a431bf1e0
Implement most of monger.convertion.ConvertFromDBObject
2011-08-13 21:18:21 +04:00
Michael S. Klishin
b38b357f50
Support java.util.List convertion
2011-08-13 07:36:44 +04:00
Michael S. Klishin
bc8fccf429
Further work on monger.convertion protocols
2011-08-13 07:30:54 +04:00
Michael S. Klishin
6c0eb8f1e0
Initial monger.convertion.* protocols work
2011-08-12 21:48:08 +04:00
Michael S. Klishin
8ee5b8f717
Introduce monger.collection/count
2011-08-04 18:06:13 +04:00
Michael S. Klishin
1299aecb3a
Implement monger.core/connect and monger.core/get-db
2011-08-04 17:44:31 +04:00
Michael S. Klishin
c70074a3ed
Initial Leiningen project structure
2011-08-04 16:01:50 +04:00