mongodb/doc/TODO
2011-07-12 10:51:54 -04:00

51 lines
2 KiB
Text

TODO
====
Bson
----
+ implement deprecated types (were left out)
+ convert from/to json
+ tie regex type to type in regex library
+ Read instance for Documents that can read its Show representation
MongoDB
-------
+ Support the new query flag: https://jira.mongodb.org/browse/SERVER-2020
+ When one connection in a pool fails, close all other since they will likely fail too
+ on insert/update: reject keys that start with "$" or "."
+ dereference dbref
+ functions for every command, eg.
- findAndModify
- reIndex (http://www.mongodb.org/display/DOCS/Indexes#Indexes-ReIndex)
- createIndex attributes: background, min, max
- createIndex Order [Asc, Dec, Geo2d]
- getIndexInfo
- logout
- collectionsInfo
- databasesInfo
- getProfileInfo
+ Query attribute: timeout
+ Update If Current (http://www.mongodb.org/display/DOCS/Atomic+Operations)
+ Upon client exit, send killCursors for all open cursors, otherwise server will keep them open for 10 minutes and keep NoCursorTimeout cursors open for hours.
+ Upon cursor finalize (garbage collect) send killCursor even if you have to create a new connection, because server keeps cursors open for 10 minutes (or more).
+ Query option Exhaust
+ Reconnect on replica set primary stepdown, so no exception raised to user
+ Reconnect on query ioerror re-query, so no exception raised to user. Can't be done for writes because it is not safe to re-execute a write.
+ tailable cursor support
- only close cursor when cursorID is 0
- have to create loop that sleeps and retries
- lazy list support
+ GridFS
Tests - none currently
Misc
----
+ javascript DSL
Questions:
- In Mongo shell, db.foo.totalSize fetches storageSize of each index but does not use it
Notes:
- Remember that in the new version of MongoDB (>= 1.6), "ok" field can be a number (0 or 1) or boolean (False or True). Use 'true1' function defined in Database.MongoDB.Util
- A cursor will die on the server if not accessed (by any connection) within past 10 minutes (unless NoCursorTimeout option set). Accessing a dead (or non-existent) cursor raises a CursorNotFoundFailure.