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
a3d6a66eb1
Use GridFS/DEFAULT_CHUNKSIZE instead of our own default
...
Ruby driver uses 2 MB default chunk size, Java driver uses 256K. Lets use what the Java driver
does.
2011-12-31 16:55:32 +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
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
bb806d5c0f
Remove unused DSL support functions
2011-12-31 07:03:15 +04:00
Michael S. Klishin
d0f2cbc737
Add monger.core/*mongodb-gridfs* and related with-* macro. Blow the dust off monger.core along the way.
2011-12-31 06:57:29 +04:00
Michael S. Klishin
eab4405012
Initial bits of monger.gridfs
2011-12-31 06:56:02 +04:00
Michael S. Klishin
3c813132d8
Return type of monger.conversion/to-db-object is always the same, hint it
2011-12-31 06:44:34 +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
8300b7c0c4
Eliminate compiler warning
2011-12-31 04:24:27 +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
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
57c4ad6e9b
Switch to clojure.java.io/resource here
2011-12-16 11:12:55 +04:00
Michael S. Klishin
f49e272f9f
Introduce monger.testing/defcleaner that supposed to be used with clojure.test/use-fixtures
2011-12-16 07:18:16 +04:00
Oleksandr Petrov
e6f81e52a7
Merge branch 'master' of https://github.com/michaelklishin/monger
2011-12-03 18:40:52 +01:00
Oleksandr Petrov
16d02800d3
Commenting code, adding docs.
2011-12-03 18:39:17 +01:00
Oleksandr Petrov
611d9666bd
Added get-write-concern function.
2011-12-03 18:39:02 +01:00
Oleksandr Petrov
f2a5786ad4
Adding some docs.
2011-11-30 22:07:40 +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
578673a058
Writing docs
2011-11-25 17:58:35 +01:00
Oleksandr Petrov
1124316793
Adding some docs for operators.
2011-11-25 17:33:23 +01:00
Oleksandr Petrov
9664961120
Adding some docs to querying.
2011-11-19 23:41:36 +01: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
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
Michael S. Klishin
c40b0e25c1
Simplify defoperator
2011-11-12 20:46:34 +04:00
Michael S. Klishin
0b242f9586
Add operator
2011-11-12 20:33:02 +04: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
Oleksandr Petrov
df12686708
Making defoperator private by default
2011-11-11 18:54:11 +01: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
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
20c271eee5
A typo
2011-11-05 08:31:46 +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
Oleksandr Petrov
edbaec0a3b
Merge branch 'master' of https://github.com/michaelklishin/monger
2011-10-16 16:04:55 +02:00
Oleksandr Petrov
1dc94ae351
Adding some docs for indexing.
2011-10-16 16:04:51 +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
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
3963808152
Introduce monger.collection/distinct
2011-10-16 14:19:04 +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
8b22e9eef1
Extend JodaTime integration
...
This is not perfect since it currently ignores output writer paramter
and assumes clojure.data.json but it is a significantly better choice than
forcing every clojure.data.json user to use JodaTime.
2011-10-13 23:47:36 +04:00