108 lines
2.6 KiB
Text
108 lines
2.6 KiB
Text
TODO
|
|
====
|
|
|
|
+ inject _id if not given, return it
|
|
|
|
BSON
|
|
----
|
|
+ on insert/update: reject keys that start with "$" or "."
|
|
+ data support for common mongo "$symbols"
|
|
+ convert from/to json
|
|
+ tie in with native regex like python does?
|
|
- on outgoing uncompile?
|
|
- on incoming automatically compile
|
|
+ more time convertibles
|
|
+ map operations for BsonDoc (or should it be applicative?)
|
|
|
|
MongoDB
|
|
-------
|
|
+ support full level 0
|
|
- handle query errors
|
|
- hint, explain, $where
|
|
- database profiling: set/get profiling level, get profiling info
|
|
- pair mode connection
|
|
- handle defunct servers
|
|
- connection fail over
|
|
- operations on database objects
|
|
* getName
|
|
* getCollection
|
|
* add_son_manipulators
|
|
* dereference (dbref)
|
|
* error
|
|
* eval
|
|
* last_status
|
|
* reset_error_history
|
|
- database admin
|
|
* getAdmin
|
|
* getProfilingLevel
|
|
* setProfilingLevel
|
|
* getProfilingInfo
|
|
- collection
|
|
* modify
|
|
* replace
|
|
* repsert
|
|
- index operations
|
|
* ensureIndex / index existance caching
|
|
- misc operations
|
|
* explain
|
|
* getOptions
|
|
* getName
|
|
* close
|
|
* group
|
|
* distinct
|
|
- cursor object
|
|
* hasMore
|
|
|
|
orderby (sort)
|
|
|
|
optional:
|
|
- automatic reconnection
|
|
- buffer pooling
|
|
- advanced connection management (master-server, replica pair)
|
|
- Tailable cursor support
|
|
+ support safe operations
|
|
+ auto-reconnection
|
|
+ auto-destoy connection (how?/when?)
|
|
+ pymongo returns the new ObjectId(s) on insert
|
|
+ don't read into cursor until needed, but have cursor send getMore before
|
|
it is actually out of docs (so network is finished by the time we're ready
|
|
to consume more)
|
|
+ support a LIMITed quickFind
|
|
|
|
Misc
|
|
----
|
|
+ learn more about haskelldb, anything we can learn from there
|
|
+ go through pymongo api and figure out what parts to adopt (also look
|
|
at other languages?)
|
|
- database_names()
|
|
- collection_names()
|
|
+ support for aggricated commands like listing collections
|
|
+ kill prefix on data types "eg QO_*"?
|
|
+ javascript
|
|
+ tailable cursor support
|
|
- only close cursor when cursorID is 0
|
|
- have to create loop that sleeps and retries
|
|
- lazy list support
|
|
+ error handling?
|
|
+ concurrency (share connection?)
|
|
+ is there a garbage collector hook that will let us free cursors and connections?
|
|
|
|
Tests?
|
|
Documentation
|
|
- ref
|
|
|
|
GridFS
|
|
|
|
|
|
pretty printer
|
|
deep "lookup" function (other deep Map functions?)
|
|
how to make bytestrings less painful
|
|
custom Show/Read instance that looks more like json
|
|
make sure NULLs aren't in created table names
|
|
|
|
update tutorial to match new python one
|
|
|
|
+ custom types (see python examples)
|
|
+ support array conversions again
|
|
+ better type conversion errors
|