Michael Klishin
118a6aa872
Cosmetics
2013-11-30 23:37:26 +04:00
Michael Klishin
6ba204a602
Ditto
2013-11-30 20:16:18 +04:00
Michael Klishin
02121379e7
Don't use :use
2013-11-30 20:16:04 +04:00
Michael Klishin
daa8361c91
Cosmetics
2013-11-30 20:15:41 +04:00
Michael Klishin
56bcf8c209
Copy year
2013-11-30 20:15:17 +04:00
Michael Klishin
a2beed97e7
Cosmetics
2013-11-30 20:15:04 +04:00
Michael Klishin
3d120456ff
Merge pull request #62 from timgluz/query_options
...
Enhancements for tweaking options of dbCursor
2013-09-21 13:04:48 -07:00
Timo Sulg
7e7f3aba4c
cleanups; updated query/option;
2013-09-21 19:17:58 +02:00
Timo Sulg
2dca992496
added cursor namespaces, cleanups;
...
refactored helpers for DBCursor into own namespace;
cleaned up previous hacks;
added extra classes for add-options;
added tests for cursor namespace;
2013-09-21 15:46:01 +02:00
Timo Sulg
58b5b1ddac
updated docs; additional buffertime for timeout.
2013-09-15 20:30:01 +02:00
Timo Sulg
7570e4ce6d
Added cursor-helpers and new find method;
2013-09-15 16:53:41 +02:00
Timo Sulg
679fd2bf92
Added support for LocalDate - required for serializing (clj-time/today).
2013-09-10 17:54:37 +02:00
Michael Klishin
78c9336ad7
Merge branch 'master' of github.com:michaelklishin/monger
...
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2013-07-06 04:38:56 +04:00
Michael Klishin
f37db1fa84
Correct type hints
2013-07-06 04:38:05 +04:00
Fernando Dobladez
0179bbc046
Fix: must return ids in creation order
2013-07-05 16:21:35 -03:00
Erik Bakstad
a6606deb05
Made it possbile to pass explisit db to session-store
2013-06-24 00:17:48 +02:00
Erik Bakstad
0d635721a1
Added missing fns to multi/collection. Related to #53 .
2013-06-20 13:25:27 +02:00
Tommi Reiman
4137f4a6f9
$setOnInsert
2013-06-20 00:01:28 +03:00
Michael Klishin
3bc3ee6d6a
Add $millisecond to monger.operators
2013-05-27 05:21:25 +04:00
Michael Klishin
af19e62479
Add $slice to the list of known operators
2013-05-14 15:00:53 +04:00
Michael Klishin
4ac8f8330a
Initial work on monger.multi.collection
2013-04-19 00:43:27 +04:00
Michael Klishin
a39c13a574
Make monger.collection/upsert actually upsert
...
Headdesk
2013-04-17 02:01:22 +04:00
Michael Klishin
bdf0082372
Merge branch 'master' of github.com:michaelklishin/monger
2013-04-15 21:24:13 +04:00
Michael Klishin
c0a83e7241
Add monger.collection/upsert
2013-04-15 21:24:08 +04:00
Andy Fingerhut
0bd3ef12ab
Eliminate some reflection via adding type hints, and correcting one
2013-04-13 16:18:22 -07:00
Michael Klishin
bffb58cc1f
Introduce additional cache implementation that can use any database
2013-04-14 01:53:56 +04:00
Michael Klishin
496325a417
Use clojure.core/array-map with ensure-index in all examples
...
To preserve ordering which is important.
References #50
2013-04-04 23:44:58 +04:00
Michael Klishin
848bbd07d3
Full text search support via monger.search
2013-03-20 03:50:27 +04:00
Michael Klishin
2a34be05ad
Add a few new MongoDB 2.4-specific operators to monger.operators
2013-03-20 01:30:11 +04:00
Michael Klishin
3a2afd0cec
Make monger.core/mongo-options fully up-to-date with the Java driver 2.10.1
2013-03-18 19:32:03 +04:00
Michael Klishin
2012fed7c4
Finally get rid of the factory DSL
...
We did learn some things from it but it just did not
work very well. A better solution is coming in the future.
2013-03-17 20:57:40 +04:00
Michael Klishin
62013fd070
Introduce 2-arity monger.core/authenticate that authenticates on the default DB
2013-02-28 16:45:34 +04:00
Tom McNulty
80a4625d89
Close Cursor in queries
2013-01-10 21:01:09 -07:00
Tom McNulty
a121598651
Close DBCursors in find-maps/find-seq
2013-01-10 20:32:48 -07:00
Robert Pitts
4bbb26b8dc
A few spelling corrections in monger/collection
...
s/wether/whether/g
2012-12-10 18:16:02 -05:00
huangz1990
f8a3fe1982
Remove duplicated create function in monger.collection
2012-12-01 19:39:04 +08:00
Michael Klishin
d3114be395
Upgrade to MongoDB Java driver 2.10
...
A note on a few test we removed: they are not essential, the implementation still
works fine but MongoDB Java driver is so broken in some areas that it is really
painful to work around all that stuff.
For example, authentication commands fail because the request cannot be
authenticated (!!!). In general, all removed tests involve or related to
authentication failures or edge cases where the database is switched between
tests.
Because authentication with valid credentials works perfectly fine,
it is hard to justify spending another 2 hours working around
issues in the driver that had way too many poor design decisions
from very early days.
2012-11-27 23:25:24 +04:00
Michael Klishin
20faaf2fe0
Eliminate some reflection warnings
2012-11-24 21:11:07 +04:00
Michael Klishin
7a87332537
Changes for Cheshire 5.0
2012-11-21 12:00:18 +04:00
Michael S. Klishin
c5e2c78ed0
The same fix for data.json compatibility we had in clojurewerkz.support.json
2012-11-09 02:19:48 +04:00
Michael S. Klishin
2818ac6c26
Introduce monger.core/disconnect!
...
Closes #42
2012-10-24 07:57:09 +04:00
Michael S. Klishin
1a351cff88
Use and recommend sorted maps for commands
2012-09-19 16:34:24 +04:00
Michael S. Klishin
33b8f54460
Cheshire support for monger.json and monger.joda-time
2012-09-07 00:48:18 +04:00
Michael S. Klishin
23a55420df
Work arounds for CLJ-1062
2012-09-06 05:54:28 +04:00
Michael S. Klishin
430ca21d7c
Only extend clojure.data.json if it is available
2012-08-23 09:27:12 +04:00
Michael S. Klishin
1a878b4c80
Make it clear that monger.joda-time also provides Clojure reader extensions
2012-08-23 09:05:36 +04:00
Michael S. Klishin
bc825e4343
Clarify monger.joda-time's purpose and requirements via docstring
2012-08-23 09:04:45 +04:00
Michael S. Klishin
ef2a92f980
Trying to resolve Raynes' woes with RefHeap
2012-08-12 05:31:14 +04:00
Baishampayan Ghose
d58434e2ea
Remove certain reflection warnings in monger.joda-time.
2012-07-25 13:14:45 +05:30
Michael S. Klishin
9452862f0c
Support bitmask DBCursor options, fixes #35
2012-07-11 23:12:23 +04:00
Michael S. Klishin
2a1e52fc1e
Make sure monger.collection/insert-and-return respects existing document id, just like save-and-return does
2012-07-11 22:26:13 +04:00
Michael S. Klishin
c1b86756c8
Introduce monger.collection/save-and-return that mimics /insert-and-return but for /save
2012-07-03 17:07:13 +04:00
Michael S. Klishin
21d7481f42
Don't shadow clojure.core/name with a local, stupid
...
Caught by the CI
2012-07-01 11:36:11 +04:00
Michael S. Klishin
a7b7925495
Support keywords as collection names
2012-07-01 11:09:23 +04:00
Michael S. Klishin
080ef6b896
Introduce monger.collection/insert-and-return
...
Per discussion in Raynes/refheap#89
2012-06-30 23:49:56 +04:00
Michael S. Klishin
8f8b4387b6
Doc strings for namespaces
2012-06-29 11:49:22 +04:00
Michael S. Klishin
2778710cc1
Document options monger.collection/ensure-index takes
2012-06-29 10:57:17 +04:00
Michael S. Klishin
e4507f42eb
Doc string correction
2012-06-28 15:05:12 +04:00
Michael S. Klishin
f194dc9cae
Reader extensions for Joda Time types
2012-06-27 20:30:35 +04:00
Michael S. Klishin
1b69e0644b
Extend Clojure reader for ObjectId and java.util.Date
2012-06-27 19:51:10 +04:00
Michael S. Klishin
ff77d3ccd7
3rd correction
2012-06-27 19:08:55 +04:00
Michael S. Klishin
2fcdfab8ba
Can't use print-dup on dates on 1.3 :(
2012-06-27 19:08:15 +04:00
Michael S. Klishin
43349f65ae
Add an alternative Ring session store that uses Clojure reader serialization
...
This way libraries like Friend, that use namespaced keywords (::identity) and other
Clojure-specific data structures will work well with Monger.
Current store will strip off namespace information from namespaced keywords
because clojure.core/name work that way. For example: (name ::identity).
Reported by Julio Barros.
2012-06-27 19:02:11 +04:00
Michael S. Klishin
dc7a8fd6ec
Extend DBObject conversion protocol for more JodaTime types
2012-06-26 13:23:16 +04:00
Michael S. Klishin
76efdc7e7b
Add a clause for booleans per discussion on the mailing list
2012-06-23 19:16:42 +04:00
Michael S. Klishin
0a2fdc8cc3
Ragtime migrations adapter
2012-06-19 12:18:43 +04:00
Michael S. Klishin
d68b57511c
More helpful exception message
2012-06-18 05:18:36 +04:00
Michael S. Klishin
92a262ff8a
A typo
2012-06-14 19:55:02 +04:00
Michael S. Klishin
6f25f1bc45
Correct type hint
2012-06-14 19:33:36 +04:00
Michael S. Klishin
3a948667d5
Fight Java with Java
...
Make our own version of DBRef that is exactly like the original but has one extra constructor and
implements clojure.lang.IDeref so it is possible to @dereference such refs.
This is only one small step in a proper, Clojuric, easy to use DBRef support. We may tack more Monger-specific
extensions to our DBRef implementation later.
As sang by Jetallica:
Do unto others as they have done unto you
but what in the hell is this world coming to?
Blow the universe into nothingness
nuclear warfare shall lay us to rest
Fight Java with Java
ending is near
fight Java with Java
bursting with fear
2012-06-14 19:28:40 +04:00
Michael S. Klishin
c172737816
Document that monger.testkit is still experimental and will have breaking changes
2012-06-14 18:36:44 +04:00
Michael S. Klishin
b634951812
src/monger => src/clojure/monger
2012-06-14 18:33:42 +04:00
Michael S. Klishin
787d2d299d
Don't seq the underlying cursor in the query DSL
...
map will work over the cursor itself because it is Iterable. This both avoids silly NPEs and
follows the common sense of finder functions: they must return an empty sequence when there
are no results, not nil.
2012-06-14 15:08:05 +04:00
Michael S. Klishin
4df673d127
Make it possible to pass fields to index as any collection (not just map)
2012-06-11 00:06:13 +04:00
Michael S. Klishin
52c5e15008
Cosmetics
2012-06-10 12:49:37 +04:00
Michael S. Klishin
bb5cfdc499
In Monger this fn is supposed to be public
2012-06-10 12:37:29 +04:00
Michael S. Klishin
75bb240af9
Add monger.collection/system-collection?, a convenience function
...
We don't add it to the change log because the majority of apps won't use it and
it is not an important change between RC1 and RC2 (or what may even be 1.0).
2012-06-10 12:35:52 +04:00
Michael S. Klishin
898349f95a
A couple more convenience functions
2012-06-09 11:25:48 +04:00
Michael S. Klishin
12f48b058b
Remove type hints that can be inferred by the compiler, part 3
2012-06-09 00:36:07 +04:00
Michael S. Klishin
5813f61649
Eliminate this reflection warning
...
Unfortunately, because Java driver's return type is so generic (Iterable),
we have to do it by type hinting what is really returned as the result set
(by inspecting the Java driver code paths).
2012-06-09 00:33:55 +04:00
Michael S. Klishin
e008e0d18d
Remove type hints that can be inferred by the compiler, part 2
2012-06-09 00:26:23 +04:00
Michael S. Klishin
423b80774a
Remove type hints that can be inferred by the compiler, part 1
2012-06-09 00:23:01 +04:00
Michael S. Klishin
91d967b592
Inlining, part 2
2012-06-09 00:20:55 +04:00
Michael S. Klishin
2a64afa6ff
Inlining, part 1
...
We inline collection getter not so much as an optimization technique (HotSpot will inline all that anyway) but
mostly to remove let forms that do not make any difference to the (human) reader.
2012-06-09 00:14:19 +04:00
Michael S. Klishin
824a532590
Cosmetics
2012-06-09 00:12:26 +04:00
Michael S. Klishin
d12f33e1e8
Better authentication failure message
2012-06-08 22:14:59 +04:00
Michael S. Klishin
f07f577094
Cosmetics
2012-06-08 22:09:17 +04:00
Michael S. Klishin
d824e622c3
Derp
2012-06-08 22:07:16 +04:00
Michael S. Klishin
1184fce8c3
Add a few more commands that may be useful to JVM-based applications
...
Clojure is unlikely to be a good choice for devops tools, so we don't
implement convenience functions for sharding, replication, et cetera.
2012-06-08 22:04:46 +04:00
Michael S. Klishin
babd429f5b
Implement monger.result/ok? for Clojure maps
2012-06-08 11:56:00 +04:00
Michael S. Klishin
6e43328941
New higher-level DSL for storing files on GridFS
...
References #27
2012-06-04 14:46:13 +04:00
Michael S. Klishin
a6544a1617
Make sure gridfs finders never go into infinite recursion
...
Protocol matching is hash-based, so we cannot guarantee that DBObject implementation will
always be picked before java.util.Map's.
2012-06-04 14:15:12 +04:00
Michael S. Klishin
e033aa995b
More gridfs support improvements
...
References #27
2012-06-04 14:03:45 +04:00
Michael S. Klishin
d79e35790f
Make sure namespaces that use monger.gridfs/make-input-file don't have to import GridFSInputFile
2012-06-04 13:24:58 +04:00
Michael S. Klishin
01773f50d5
Better coverage for storing files in gridfs, include file metadata
...
References #27
2012-06-04 13:11:31 +04:00
Michael S. Klishin
5964e01b1d
Make :auto-connect-retry connection default to true
...
Another very unsafe default on the MongoDB Java driver side. Monger puts safety first, fancy
sky high benchmarks second.
2012-05-28 02:22:46 +04:00
Michael S. Klishin
63f7099350
MongoDB 2.1 Aggregation Framework support
2012-05-28 00:43:45 +04:00
Michael S. Klishin
dd9d1c3bfd
The rest of 2.1/2.2 Aggregation framework operator macros
2012-05-25 23:49:57 +04:00
Michael S. Klishin
47cc9a0363
$limit and $skip operator macros
2012-05-25 23:44:44 +04:00
Michael S. Klishin
3360c2e96c
$group operator macro
2012-05-25 23:26:11 +04:00
Michael S. Klishin
6a7ac2f1b3
$match, $project, $unwind operator macros
2012-05-25 23:24:30 +04:00
Michael S. Klishin
acdaffba99
Add $regex and $options operator macros
2012-05-25 14:39:35 +04:00
Michael S. Klishin
0db4bc6e11
Minor docstring improvements
2012-05-22 18:46:15 +04:00
Baishampayan Ghose
79fa31304a
Use alter-var-root instead of def in set-write-concern!.
...
Using `def` there is unnecessary and redundant.
2012-05-15 17:31:04 +05:30
Baishampayan Ghose
75fd7f5c91
Add support for connecting to Replica Sets.
...
Monger can now connect to replica sets using one or more seeds when
calling monger.core/connect with a vector (or list) of server-addresses
instead of just a single one.
For example -
;; Connect to a single MongoDB instance
(connect (server-address "127.0.0.1" 27017) (mongo-options))
;; Connect to a replica set
(connect [(server-address "127.0.0.1" 27017)
(server-address "127.0.0.1" 27018)]
(mongo-options))
Since connect! just applies connect to all the args, it works fine there
as well.
2012-05-15 11:33:40 +05:30
Michael S. Klishin
87184af396
Initial Ring session store implementation
2012-05-14 16:10:55 +04:00
Baishampayan Ghose
43cddbcf57
Remove redundant invocation of to-db-object on top of as-field-selector.
...
`as-field-selector` already returns a DBObject, so there is no need to call `to-db-object` on top of the return value.
2012-05-12 11:00:33 +05:30
Michael S. Klishin
1d54e00a4d
Change log update, copyright header update
2012-05-12 07:44:40 +04:00
Baishampayan Ghose
ccd3d7ab66
Add monger.collection/find-and-modify and associated tests.
2012-05-12 09:02:19 +05:30
Michael S. Klishin
8142d02f01
Deprecate monger.js (moved to clojurewerkz.support.js)
2012-05-03 01:06:41 +04:00
Michael S. Klishin
d04ab3af2d
More cleanup
2012-05-01 16:35:33 +04:00
Michael S. Klishin
c36a0abe8c
Use clojurewerkz.support 0.2.0
2012-04-26 21:14:48 +04:00
Michael S. Klishin
5341344e97
Remove type hints that are not guaranteed to be correct 100% of the time
2012-04-24 09:38:21 +04:00
Michael S. Klishin
444017fde2
Define several more operators
2012-04-23 15:01:13 +04:00
Michael S. Klishin
6a2698dce2
Support serialization of Clojure sets (or anything that implements java.util.Set)
2012-04-16 02:32:28 +04:00
Michael S. Klishin
ceeac55496
A more efficient implementation of clojure.core.cache/has? for BasicMongerCache
2012-04-12 17:12:08 +04:00
Michael S. Klishin
2c9cce8466
Capped collections support
2012-04-12 06:10:08 +04:00
Michael S. Klishin
d203f27479
Cosmetics
2012-04-12 06:09:54 +04:00
Michael S. Klishin
90171ac2d1
Two faster paths for strings and dates
2012-04-11 20:59:20 +04:00
Michael S. Klishin
28831c61da
Initial monger.cache version, implements clojure.core.cache/CacheProtocol only
2012-04-11 20:58:05 +04:00
Michael S. Klishin
e425bc84ea
Support DBObject conversion for all objects that implement clojure.lang.Named, not just keywords
2012-04-11 20:57:31 +04:00
Michael S. Klishin
30a4ae4ea0
Don't assume ids are ObjectId instances (for caches it may be different)
2012-04-11 20:56:47 +04:00
Michael S. Klishin
7ef48e9bb4
Eliminate reflection warnings
2012-04-11 20:56:22 +04:00
Michael S. Klishin
19b8e48084
Make sure we authenticate before calling set-db! (which instantiates a GridFS object)
...
Fixes Heroku/MongoHQ add-on issues
2012-04-11 01:33:29 +04:00
Michael S. Klishin
6e7c29ba8b
Improve support for URI connections
2012-04-11 00:20:07 +04:00
Michael S. Klishin
0da0a696f2
Initial support for URI connections.
...
I want to believe that the person who designed MongoDB Java driver API was not sober while at it.
2012-04-10 23:54:23 +04:00
Michael S. Klishin
a6d15dbbe1
Extend monger.core/count to MapReduceOutput
2012-04-10 19:16:21 +04:00
Michael S. Klishin
876269e81a
Use 127.0.0.1 as default host
2012-04-07 07:42:13 +04:00
Michael S. Klishin
c23a589620
Correct comment
2012-04-04 23:23:31 +04:00
Michael S. Klishin
6282f41f06
Support field negation in queries, closes #17
2012-04-04 23:08:05 +04:00
Michael S. Klishin
0530b165f6
Add support for index options + unique indexes for monger.collection/ensure-index and monger.collection/create-index
2012-04-03 16:42:48 +04:00
Michael S. Klishin
f0d190cff7
Support conversion of Clojure ratios to MongoDB data types
...
We go with doubles because it is the only realistic solution that is
interoperable with all other technologies. Plus, Clojure ratios are just
lazily evaluated doubles anyway.
2012-04-02 12:14:24 +04:00
Michael S. Klishin
1db1e04b0a
monger.testing => monger.testkit
...
If nothing else, this will save everyone some headaches trying to figure out
conflicts between testing the namespace alias and clojure.test/testing (the function)
2012-03-21 19:36:48 +04:00
Michael S. Klishin
cedfecbbbd
Introduce monger.testing/memoized-oid (convenience function for defining referenced associations)
2012-03-08 12:18:02 +04:00
Michael S. Klishin
425327aafa
Introduce monger.testing/seed-all
2012-03-07 13:02:59 +04:00
Michael S. Klishin
dfb7bd3fc8
Remember object ids of inserted documents
2012-03-07 11:33:32 +04:00
Michael S. Klishin
0154e33470
Implement parent-id seeding in the factory DSL
2012-03-07 10:21:57 +04:00
Michael S. Klishin
94abe56605
Initial support for child => parent references in factories
2012-03-06 21:13:34 +04:00
Michael S. Klishin
5a2ab1a22b
Make monger.internal.fn/expand-all-with more flexible
2012-03-06 19:44:23 +04:00
Michael S. Klishin
9b9005448b
Implement monger.internal.fn/expand-all-with
2012-03-06 19:38:40 +04:00
Michael S. Klishin
c1409eb81e
Test case with child documents embedded into parent now passes
2012-03-06 12:07:02 +04:00
Michael S. Klishin
a2eb9ce964
Also expand vector values that are functions
2012-03-06 12:02:26 +04:00
Michael S. Klishin
2e47407ef0
Implement expansion (evaluation) of function values in factories
2012-03-06 11:35:35 +04:00
Michael S. Klishin
b9016aff99
Implement recursive function value expansion (for maps)
2012-03-06 11:30:01 +04:00
Michael S. Klishin
e54bd37932
Cached object ids won't work, per (long) discussion with Alex
2012-03-05 20:55:08 +04:00
Michael S. Klishin
0f867b8236
Implement seeding (insertion) of factory-built documents, add (experimental) oid-of function
...
We will see if caching object ids is a viable idea, it is not obvious at this point
2012-03-05 18:10:36 +04:00
Michael S. Klishin
19a55b5a5b
Initial factory/fixture DSL bits
2012-03-05 17:09:59 +04:00
Michael S. Klishin
63d40179fe
Switch monger.core to alter-var-root
...
Previous implementation was almost literally my first code in Clojure. Needless to say it sucked.
2012-02-28 20:23:50 +04:00
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