mongodb/TODO
2010-02-24 07:10:32 -06:00

103 lines
2.5 KiB
Text

TODO
====
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
- allow connecting only to slave
- 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
* map reduce
- cursor object
* hasMore
orderby (sort)
optional:
- automatic reconnection
- buffer pooling
- advanced connection management (master-server, replica pair, Option_SlaveOk)
- 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
- tutorial
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