92 lines
2.3 KiB
Text
92 lines
2.3 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
|
|
|
|
MongoDB
|
|
-------
|
|
+ support full level 0
|
|
- database command support ??
|
|
- handle query errors
|
|
- hint, explain, count, $where
|
|
- database profiling: set/get profiling level, get profiling info
|
|
- validate a collection in a database ??
|
|
- pair mode connection
|
|
- operations on database objects
|
|
* getName
|
|
* getCollectionNames
|
|
* getCollection
|
|
* dropCollection
|
|
* executeCommand
|
|
* dropDatabase (erase)
|
|
- database admin
|
|
* getAdmin
|
|
* getProfilingLevel
|
|
* setProfilingLevel
|
|
* getProfilingInfo
|
|
* validateCollection
|
|
- collection
|
|
* modify
|
|
* replace
|
|
* repsert
|
|
* getCount()
|
|
* getCount(query)
|
|
- index operations
|
|
* createIndex
|
|
* dropIndex
|
|
* dropIndexes
|
|
* getIndexInformation
|
|
- misc operations
|
|
* explain
|
|
* getOptions
|
|
* getName
|
|
* close
|
|
- cursor object
|
|
* hasMore
|
|
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 |