}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}~}~T0Convert a native Haskell type into a BsonValue. 0Convert a BsonValue into a native Haskell type. =Convert a BsonDoc into another form such as a Map or a tuple  list with String keys. ?Convert a Map or a tuple list with String keys into a BsonDoc.  5BsonValue is the type that can be used as a key in a  .  !An empty BsonDoc "#$%&  !"#$%&   !$%"#&    !"#$%&(Should this index guarantee uniqueness? 'Direction to index. ()*The field key to index on. +,$provide statistics on job execution  time -"can pass in variables that can be  access from mapreduce finalize .function to apply to all the  results when finished /#If set the generated collection is & not treated as temporary, as it will  be by defualt. When MROptOut is  specified, the collection is  automatically made permanent. 0output-collection name 1!number of objects to return from  collection 2query filter object 3&Options that effect the behavior of a i operation. 456'Options that control the behavior of a h operation. 789:;<==This controls how many documents are returned at a time. The  cursor works by requesting  NumToReturn documents, which are then E immediately all transfered over the network; these are held locally  until the those  NumToReturn' are all consumed and then the network  will be hit again for the next  NumToReturn documents.  If the value 02 is given, the database will choose the number of  documents to return. GOtherwise choosing a good value is very dependant on the document size ' and the way the cursor is being used. >?Sets the number of documents to omit - starting from the first B document in the resulting dataset - when returning the result of  the query. ?=A list of field names that limits the fields in the returned A documents. The list can contains zero or more elements, each of E which is the name of a field that should be returned. An empty list = means that no limiting is done and all fields are returned. @A  5 representing restrictions for a query much like the  where part of an SQL query. A The same as B but without the C prefix. B:The full collection name. The full collection name is the D concatenation of the database name with the collection name, using  a .6 for the concatenation. For example, for the database foo  and the collection bar, the full collection name is foo.bar. CThe name of a database. DE-An Iterator over the results of a query. Use u to get each  successive result document, or v or w to get lazy or  strict lists of results. FG%Maximum number of objects if capped. HIf , this is a capped collection. IDesired initial size for the  collection (in bytes). must be  less than or equal to  10000000000. For capped " collections this size is the max  size of the collection. JKIt's fine to connect to the slave L*A list of handles to database connections M+Establish a connection to a MongoDB server N3Establish connections to a list of MongoDB servers OIEstablish connections to a list of MongoDB servers specifying each port. PBEstablish a connection to a MongoDB server on a non-standard port QClose database connection R/Information about the databases on the server. S/Return a list of database names on the server. T Alias for Q UDrop a database. V+Get information about the MongoDB server we're connected to. WShut down the MongoDB server. 9Force a clean exit, flushing and closing all data files. C Note that it will wait until all ongoing operations are complete. X Return a list of collections in Database. Y*Create a new collection in this database. @Normally collection creation is automatic. This function should ' only be needed if you want to specify Fs on creation.  D% is thrown if the collection already  exists. ZDrop a collection. [Rename a collection--first FullCollection argument is the G existing name, the second is the new name. At the moment this command : can also be used to move a collection between databases. \9Return a string of validation info about the collection. &Example output (note this probably can/will change with different  versions of the server):  validate $ details: 0x7fe5cc2c1da4 ofs:e7da4 & firstExtent:0:24100 ns:test.foo.bar % lastExtent:0:24100 ns:test.foo.bar  # extents:1 0 datasize?:180 nrecords?:5 lastExtentSize:1024  padding:1  first extent: & loc:0:24100 xnext:null xprev:null  nsdiag:test.foo.bar 5 size:1024 firstRecord:0:241e4 lastRecord:0:24280  5 objects found, nobj:5  260 bytes data w/headers  180 bytes data wout/headers # deletedList: 0100100000000000000  deleted: n: 4 size: 588  nIndexes:1  test.foo.bar.$_id_ keys:5 ]ARun a database command. Usually this is unneeded as driver wraps ! all of the commands for you (eg Y,  Z, etc). ^"Return the number of documents in FullCollection. _"Return the number of documents in FullCollection matching Selector `Delete documents matching Selector from the given FullCollection. a An alias for `. bInsert a single document into FullCollection returning the _id field. c Insert a list of documents into FullCollection returing the  _id: field for each one in the same order as they were given. dAOpen a cursor to find documents. If you need full functionality,  see h e1Query, but only return the first result, if any. fAPerform a query and return the result as a lazy list. Be sure to = understand the comments about using the lazy list given for  v. g8Perform a query and return the result as a strict list. h#Open a cursor to find documents in FullCollection that match  Selector). See the documentation for each argument' s type for - information about how it effects the query. iUpdate documents with BsonDoc in FullCollection that match Selector. jlog into the mongodb Database attached to the  Connection klm!create a new user in the current Database n Issue a map/4reduce command and return the results metadata. If % all you care about is the actual map/reduce results you might want  to use the q command instead. 9The results meta-document will look something like this:  . {"result": "tmp.mr.mapreduce_1268095152_14",  "timeMillis": 67,  "counts": {"input": 4,  "emit": 6,  "output": 3},  "ok": 1.0} The results7 field is the collection name within the same Database $ that contain the results of the map/reduce. mapping javascript function reducing javascript function o Issue a map/5reduce command with associated scopes and return the : results metadata. If all you care about is the actual map/reduce # results you might want to use the q command instead. See n, for more information about the form of the  result metadata. mapping javascript function Scope for mapping function reducing javascript function Scope for reducing function pGiven a result metadata from a q command (or  mapReduceWScope ), issue the d command that will produce the  actual map/reduce results. qRun map/,reduce and produce a cursor on the results. mapping javascript function reducing javascript function rRun map/:reduce with associated scopes and produce a cursor on the  results. mapping javascript function Scope for mapping function reducing javascript function Scope for mapping function sConveniently stores the BsonDoc to the FullCollection # if there is an _id present in the BsonDoc then it already has = a place in the DB, so we update it using the _id, otherwise  we insert it tBUse this in the place of the query portion of a select type query 0 This uses javascript and a scope supplied by a BsonDoc to evaluate * documents in the database for retrieval.  Example: B findOne conn mycoll $ whereClause "this.name == (name1 + name2)" I Just (toBsonDoc [("name1", toBson "mar"), ("name2", toBson "tha")]) u5Return one document or Nothing if there are no more. < Automatically closes the cursor when last document is read v@Return a lazy list of all (of the rest) of the documents in the D cursor. This works much like hGetContents--it will lazily read the D cursor data out of the database as the list is used. The cursor is 9 automatically closed when the list has been fully read. AIf you manually finish the cursor before consuming off this list  you won'0t get all the original documents in the cursor.  If you don'4t consume to the end of the list, you must manually C close the cursor or you will leak the cursor, which may also leak  on the database side. w?Returns a strict list of all (of the rest) of the documents in C the cursor. This means that all of the documents will immediately 5 be read out of the database and loaded into memory. x9Manually close a cursor -- usually not needed if you use  v, w, or u. yCreate a new index on FullCollection on the list of Key /   Direction pairs. z&Drop the specified index on the given FullCollection. {Drop all indexes on FullCollection. |4Return a BsonDoc describing the existing indexes on FullCollection. BWith the current server versions (1.2) this will return documents  such as:  + {"key": {"lastname": -1, "firstname": 1}, % "name": "lastname_-1_firstname_1",  "ns": "mydb.people",  "unique": true} &Which is a single key that indexes on lastname (descending) and  then  firstname (ascending) on the collection people of the  database mydb with a uniqueness requirement. W&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|WLJKMPQTUNOVWRSCD;<FIHGXYZ[]\kmjlA?B>=@6:987354^_`bchaisdefgtEvwxu*&')(yz{|+210/.-,qrnopW&')(()*+210/.-,,-./012354456:987789:;<=>?@ABCDEFIHGGHIJKKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GHO mongoDB-0.4Database.MongoDB.BSONDatabase.MongoDBDatabase.MongoDB.UtiltoBsonfromBson fromBsonDoc toBsonDoc ObjectIdGen BinarySubTypeBSTUserDefinedBSTMD5 BSTUNDEFINED2BSTUUID BSTByteArray BSTFunction BSTUNDEFINED1BsonDoc BsonValue BsonMaxKey BsonMinKey BsonInt64 BsonInt32BsonJSCodeWScope BsonSymbol BsonJSCode BsonRegexBsonNullBsonDateBsonBool BsonObjectId BsonBinary BsonUndefined BsonArray BsonString BsonDoubleempty mkObjectIdGen genObjectId getBsonDoc putBsonDocUnique Direction Descending AscendingKey MapReduceOpt MROptVerbose MROptScope MROptFinalize MROptKeepTempMROptOut MROptLimit MROptQuery UpdateFlag UFMultiupdateUFUpsertQueryOptQONoCursorTimeout QOOpLogReplay QOSlaveOKQOTailableCursorPasswordUsername NumToReturn NumToSkip FieldSelectorSelector CollectionFullCollectionDatabaseMongoDBCollectionInvalidCursor ColCreateOptCCOMax CCOCappedCCOSize ConnectOptSlaveOK ConnectionconnectconnectClusterconnectClusterOnPort connectOnPortconClose databasesInfo databaseNames disconnect dropDatabase serverInfoserverShutdowncollectionNamescreateCollectiondropCollectionrenameCollectionvalidateCollection runCommandcount countMatchingdeleteremoveinsert insertManyfindfindOne quickFind quickFind'queryupdateloginauthlogoutaddUser runMapReducerunMapReduceWScopesmapReduceResults mapReducemapReduceWScopessave whereClausenextDocallDocsallDocs'finish createIndex dropIndex dropIndexesindexInformationgetCgetI8getI32getI64getSgetNullputI8putI16putI32putI64 putNothingputNullputSputStrSzBsonConvBsonUnsupportedConversion BsonDocConv oigMachineoigIncDataType DataMaxKeyDataLong DataTimestampDataIntDataJSCodeWScope DataSymbol DataJSCodeDataRef DataRegexDataNullDataDate DataBooleanDataOid DataUndefined DataBinary DataArrayDataDoc DataString DataNumber DataMinKey toDataType fromDataTypetoBinarySubTypefromBinarySubTypeglobalObjectIdIncgetVal getInnerObj getRawObj getInnerArraygetDoc getDataTypeputTypeputValputObj putOutterObj putDataTypebsonUnsupportedConversionthrowUnsupConvReply rRespFlags rCursorIDHdrhMsgLenhRespTohOpJSCode RequestIDMongoDBConnectionFailureMongoDBOperationFailureMongoDBInternalErrorOpcode OPKillCursorsOPDelete OPGetMoreOPQuery OPGetByOidOPInsertOPUpdateOPMsgOPReplycurConcurID curNumToRetcurCol curDocBytes curClosedghc-primGHC.BoolTruecHandlecRandcOidGen newConnection openHandle getHandlecPutisMastercolCreateOptToBson splitFullCol splitHostPortmongoDBInternalErrormongoDBCollectionInvalidthrowColInvalidmongoDBOperationFailurethrowOpFailuremongoDBConnectionFailurethrowConFailure fromOpcodetoOpcode fromQueryOptsfromUpdateFlagsmoveOidToFrontOrGen mrOptToTuple getHeadergetReply getFirstDocgetMore fromDirection indexNameputColpackMsgrandNums2LvalidateCollectionName fromLookup