٣      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     (c) Victor Denisov, 2016 Apache 2.0&Victor Denisov denisovenator@gmail.comalphaPOSIXSafeAbstract transport interface should return  on EOF Make connection from handle     None/9; OA monadic sort implementation derived from the non-monadic one in ghc's PreludeRandomly shuffle items in listFRepeatedy execute action, collecting results, until it returns Nothing_Apply action to elements one at a time until one succeeds. Throw last error if all fail. Throw  error if list is empty.{Apply action to elements one at a time until one succeeds. Throw last error if all fail. Throw given error if list is empty2lift IOE monad to ErrorT monad over some MonadIO m1Change or insert value of key in association list bit-or all numbers together!=Concat first and second together with period in between. Eg. #"hello" <.> "world" = "hello.world""Is field's value a 1 or True (MongoDB use both Int and Bools for truth values). Error if field not in document or field not a Num or Bool.#`Hexadecimal string representation of a byte string. Each byte yields two hexadecimal characters.$+Two char hexadecimal representation of byte%&'() !"#$%&'() !"#$%&'() !"#$None!"#/9:;<=JLT**dSet when getMore is called but the cursor id is not valid at the server. Returned with zero results.+]Query error. Returned with one document containing an "$err" field holding the error message.,For backward compatability: Set when the server supports the AwaitData query option. if it doesn't, a replica slave client should sleep a little between getMore's-/A reply is a message received in response to a ./0 = cursor finishedTailable means cursor is not closed when the last data is retrieved. Rather, the cursor marks the final object's position. You can resume using the cursor later, from where it was located, if more data were received. Like any "latent cursor", the cursor may become invalid at some point  for example if the final object it references were deleted. Thus, you should be prepared to requery on CursorNotFound exception.0ZAllow query of replica slave. Normally these return an error except for namespace "local".The server normally times out idle cursors after 10 minutes to prevent a memory leak in case a client forgets to close a cursor. Set this option to allow a cursor to live forever until it is closed.Use with TailableCursor. If we are at the end of the data, block for a while rather than returning no data. After a timeout period, we do return as normal. | Exhaust -- ^ Stream the data down full blast in multiple "more" packages, on the assumption that the client will fully read all data queried. Faster when you are pulling a lot of data and know you want to pull it all down. Note: the client is not allowed to not read all the data unless it closes the connection. Exhaust commented out because not compatible with current 1 implementationZGet partial results from a _mongos_ if some shards are down, instead of throwing an error..+A request is a message that is sent with a - expected in return2,Number of initial matching documents to skip3The number of document to return in each batch response from the server. 0 means use Mongo default. Negative means close cursor after first batch and use absolute value as batch size.4'[] = return all documents in collection5[] = return whole documentIf set, the database will remove only the first matching document in the collection. Otherwise all matching documents will be removediIf set, the database will insert the supplied object into the collection if no matching document is foundrIf set, the database will update all matching objects in the collection. Otherwise only updates first matching doc6If set, the database will not stop processing a bulk insert if one fails (eg due to duplicate IDs). This makes bulk insert behave similarly to a series of single inserts, except lastError will be set if any insert fails, not just the last one. (new in 1.9.1)70A notice is a message that is sent with no reply81A fresh request id is generated for every message9UDatabase name and collection name with period (.) in between. Eg. "myDb.myCollection":=Message received from a Mongo server in response to a Request;A write notice(s) with getLastError request, or just query request. Note, that requestId will be out of order because request ids will be generated for notices after the request id supplied was generated. This is ok because the mongo server does not care about order just uniqueness.2Thread-safe TCP connection with pipelined requests1$Thread-safe and pipelined connection<=Mutex on handle, so only one thread at a time can write to it=uQueue of threads waiting for responses. Every time a response arrive we pop the next thread and give it the response.>2Create new Pipeline over given handle. You should  pipeline when finished, which will also close handle. If pipeline is not closed but eventually garbage collected, it will be closed along with handle.$Close pipe and underlying connection?@Listen for responses and supply them to waiting threads in order@QSend message to destination; the destination must not response (otherwise future Aas will get these responses instead of their own). Throw IOError and close pipeline if send failsB'Send message to destination and return promise of response from one message only. The destination must reply to the message (otherwise promises will have the wrong responses in them). Throw IOError and closes pipeline if send fails, likewise for promised response.CCreate pipe over handleDCreate pipe over connectionE^Send notices as a contiguous batch to server with no reply. Throw IOError if connection fails.ASend notices and request as a contiguous batch to server and return reply promise, which will block when invoked until reply arrives. This call and resulting promise will throw IOError if connection fails.FWrite message to connectionGread response from a connectionHGenerate fresh request idIONote, does not write message length (first int32), assumes caller will write itJMNote, does not read message length (first int32), assumes it was already readmK L*+,-MN/OP 0.QRST2345UVWXY67Z[\]^_`abcdefghi8j9:;klmnopqr1s<=tu>?@BCDEAFGHIJvwxyz{|}~OK L*+,-MN/OP 0.QRS2T345UVWXY67Z[\]^_`abcdefgh9klmnopqr1s<=tuCDEA6K L*+,-MN/OP 0. QRST2345UVWXY67Z[\]^_`abcdefghi8j9:;klmnopqr1s<=tu>?@BCDEAFGHIJvwxyz{|}~None!"#/09:;<=DILRTAA command is a special query or action against the database. See  ,http://www.mongodb.org/display/DOCS/Commands for details.EResult of running a MapReduce has some stats besides the output. See Dhttp://www.mongodb.org/display/DOCS/MapReduce#MapReduce-Resultobject/Clear all old data and replace it with new dataDLeave old data but overwrite entries with the same key with new dataMLeave old data but combine entries with the same key via MR's reduce function!Return results directly instead of writing them to an output collection. Results must fit within 16MB limit of a single document"pWrite results to given collection, in other database if specified. Follow merge policy when entry already exists#(key, value) -> final_value. A finalize function may be run after reduction. Such a function is optional and is not necessary for many map/reduce cases. The finalize function takes a key and a value, and returns a finalized value.$(key, [value]) -> value. The reduce function receives a key and an array of values and returns an aggregate result value. The MapReduce engine may invoke reduce functions iteratively; thus, these functions must be idempotent. That is, the following must hold for your reduce function: )reduce(k, [reduce(k,vs)]) == reduce(k,vs). If you need to perform an operation only once, use a finalize function. The output of emit (the 2nd param) and reduce should be the same format to make iterative reduce possible.% () -> void+. The map function references the variable thisK to inspect the current object under consideration. The function must call emit(key,value)N at least once, but may be invoked any number of times, as may be appropriate.&Maps every document in collection to a list of (key, value) pairs, then for each unique key reduces all its associated values to a single result. There are additional parameters that may be set to tweak this basic operation. This implements the latest version of map-reduce that requires MongoDB 1.7.4 or greater. To map-reduce against an older server use runCommand directly as described in  -http://www.mongodb.org/display/DOCS/MapReduce.+NOperate on only those documents selected. Default is [] meaning all documents.,Default is [] meaning no sort-Default is 0 meaning no limit.NOutput to a collection with a certain merge policy. Default is no collection (!A). Note, you don't want this default if your result set is large./GFunction to apply to all the results when finished. Default is Nothing.05Variables (environment) that can be accessed from mapreducefinalize. Default is [].1;Provide statistics on job execution time. Default is False.2!Fields to group by, or function ( doc -> key) returning a "key object" to be used as the grouping key. Use KeyF instead of Key to specify a key that is not an existing member of the object (or, to access embedded members).5JGroups documents in collection by key then reduces (aggregates) each group8Fields to group by9(doc, agg) -> (). The reduce function reduces (aggregates) the objects iterated. Typical operations of a reduce function include summing and counting. It takes two arguments, the current document being iterated over and the aggregation value, and updates the aggregate value.:agg.. Initial aggregation value supplied to reduce;MCondition that must be true for a row to be considered. [] means always true.<agg -> () | result . An optional function to be run on each item in the result set just before the item is returned. Can either modify the item (e.g., add an average field given a count and a total) or return a replacement object (returning a new object with just _id and average fields).=The Aggregate Pipeline>&Iterator over results of a query. Use  to iterate or  to get all results. A cursor is closed when it is explicitly closed, all results have been read from it, garbage collected, or not used for over 10 minutes (unless  option was specified in I)). Reading from a closed cursor raises a o. Note, a cursor is not closed when the pipe is closed, so you can open another pipe to the same server and continue using the cursor.CursorId = 0 means cursor is finished. Documents is remaining documents to serve in current batch. Limit is number of documents to return. Nothing means no limit.A promised batch which may failEcThe number of document to return in each batch response from the server. 0 means use Mongo default.F<Fields to sort by. Each one is associated with 1 or -1. Eg. ["x" =: 1, "y" =: -1] means sort by x ascending then y descendingG~Maximum number of documents to return, i.e. cursor will close after iterating over this number of documents. 0 means no limit.H9Fields to return, analogous to the select clause in SQL. []6 means return whole document (analogous to * in SQL). ["x" =: 1, "y" =: 1] means return only x and y fields of each document.  ["x" =: 0] means return all fields except x.IUse VM to create a basic query with defaults, then modify if desired. For example, (select sel col) {limit = 10}K Default = []M[] = all fields. Default = []N9Number of initial matching documents to skip. Default = 0O@Maximum number of documents to return, 0 = no limit. Default = 0P6Sort results by this order, [] = no sort. Default = []QIf true assures no duplicates are returned, or objects missed, which were present at both the start and end of the query's execution (even if the object were updated). If an object is new during the query, or deleted during the query, it may or may not be returned, even with snapshot mode. Note that short query responses (less than 1MB) are always effectively snapshotted. Default = FalseRoThe number of document to return in each batch response from the server. 0 means use Mongo default. Default = 0S;Force MongoDB to use this index, [] = no hint. Default = []read from master onlyread from slave okT/Update operations on fields in a document. See Hhttp://www.mongodb.org/display/DOCS/Updating#Updating-ModifierOperationsgSubmit writes without receiving acknowledgments. Fast. Assumes writes succeed even though they may not.Receive an acknowledgment after every write, and raise exception if one says the write failed. This is acomplished by sending the getLastError command, with given g parameters, after every write.VI or Xn that selects documents in collection that match selector. The choice of type depends on use, for example, in  (select sel col) it is a Query, and in  (select sel col) it is a Selection.W:Filter for a query, analogous to the where clause in SQL. []& matches all documents in collection. ["x" =: a, "y" =: b] is analogous to where x = a and y = b in SQL. See  ,http://www.mongodb.org/display/DOCS/Querying for full selector syntax.X3Selects documents in collection that match selector\,Collection name (not prefixed with database)`+Values needed when executing a db operationa%operations query/update this databasebJoperations read/write to this pipelined TCP connection to a MongoDB serverc.read/write operation will use this access modeg1Parameters for getLastError command. For example  ["w" =: 2]o tells the server to wait for the write to reach at least two servers in replica set before acknowledging. See  7http://www.mongodb.org/display/DOCS/Last+Error+Commands for more options.h#Type of reads and writes to performi8Read-only action, reading stale data from a slave is OK.j>Read-write action, slave not OK, every write is fire & forget.kLRead-write action, slave not OK, every write is confirmed with getLastError.l-Error code from getLastError or query failuremA connection failure, or a read or write exception like cursor expired or inserting a duplicate key. Note, unexpected data from the server is not a Failure, rather it is a programming error (you should call ` in this case) because the client and server are incompatible and requires a programming change.nTCP connection (=6) failed. May work if you try again on the same Mongo  Connection which will create a new Pipe.oCursor expired because it wasn't accessed for over 10 minutes, or this cursor came from a different server that the one you are currently connected to (perhaps a fail over happen between servers in a replica set)p7Query failed for some reason as described in the stringqLError observed by getLastError after a write, error description is in stringr% found no document matching selections returned an errortbA monad on top of m (which must be a MonadIO) that may access the database and may fail with a DB muRun action against database on server at other end of pipe. Use access mode for any reads and writes. Return Left on connection failure or read/write failure.vSame as k []wSame as ixRun action with given hz%List all databases residing on server{Current database in use|!Run action against given database}Authenticate with the current database (if server is running in secure mode). Return whether authentication was successful or not. Reauthentication is required for every new pipe. SCRAM-SHA-1 will be used for server versions 3.0+, MONGO-CR for lower versions.~wAuthenticate with the current database, using the MongoDB-CR authentication mechanism (default in MongoDB server < 3.0)yAuthenticate with the current database, using the SCRAM-SHA-1 authentication mechanism (default in MongoDB server >= 3.0)%List all collections in this databaseeAdd Javascript predicate to selector, in which case a document must match both selector and predicate+Send write to server, and if write-mode is Safe- then include getLastError request and raise q if it reports an error.jInsert document into collection and return its "_id" value, which is created automatically if not suppliedSame as  except don't return _idInsert documents into collection and return their "_id" values, which are created automatically if not supplied. If a document fails to be inserted (eg. due to duplicate key) then remaining docs are aborted, and LastError is set.Same as  except don't return _ids Insert documents into collection and return their "_id" values, which are created automatically if not supplied. If a document fails to be inserted (eg. due to duplicate key) then remaining docs are still inserted. LastError is set if any doc fails, not just last one.Same as  except don't return _idsoInsert documents into collection and return their "_id" values, which are created automatically if not suppliedCThis will fail if the list of documents is bigger than restrictions-Assign a unique value to _id field if missing|Save document to collection, meaning insert it if its new (has no "_id" field) or upsert it if its not new (has "_id" field)7Replace first document in selection with given documentaReplace first document in selection with given document, or insert document if selection is empty`Update first document in selection with given document, or insert document if selection is empty6Update all documents in selection using given modifierBUpdate first document in selection using updater document, unless ? option is supplied then update all documents in selection. If W option is supplied then treat updater as document and insert it if selection is empty. Bulk update operation. If one update fails it will not update the remaining - documents. Current returned value is only a place holder. With mongodb server - before 2.6 it will send update requests one by one. After 2.6 it will use - bulk update feature in mongodb.Bulk update operation. If one update fails it will proceed with the - remaining documents. Current returned value is only a place holder. With - mongodb server before 2.6 it will send update requests one by one. After 2.6 - it will use bulk update feature in mongodb.!Delete all documents in selection"Delete first document in selection Bulk delete operation. If one delete fails it will not delete the remaining - documents. Current returned value is only a place holder. With mongodb server - before 2.6 it will send delete requests one by one. After 2.6 it will use - bulk delete feature in mongodb.Bulk delete operation. If one delete fails it will proceed with the - remaining documents. Current returned value is only a place holder. With - mongodb server before 2.6 it will send delete requests one by one. After 2.6 - it will use bulk delete feature in mongodb.Selects documents in collection that match selector. It uses no query options, projects all fields, does not skip any documents, does not limit result size, uses default batch size, does not sort, does not hint, and does not snapshot. Fetch documents satisfying queryCFetch first document satisfying query or Nothing if none satisfy itSame as  except throw r if none matchruns the findAndModify command as an update without an upsert and new set to true. Returns a single updated document (new option is set to true).see 3 if you want to use findAndModify in a differnt way:runs the findAndModify command, allows more options than +Return performance stats of query execution]Fetch number of documents satisfying query (including effect of skip and/or limit if present)4Fetch distinct values of field in selected documents\Translate Query to Protocol.Query. If first arg is true then add special $explain attribute.AGiven batchSize and limit return P.qBatchSize and remaining limit2Send notices and request and return promised batch!Convert Reply to Batch or Failure6Demand and wait for result, raise failure if exceptionCreate new cursor. If you don't read all results then close it. Cursor will be closed automatically when all results are read from it or when eventually garbage collected.PReturn next batch of documents in query result, which will be empty if finished.=Return next document in query result, or Nothing if finished.1Return next N documents or less if end is reached*Return remaining documents in query result.Runs an aggregate and unpacks the result. See  0http://docs.mongodb.org/manual/core/aggregation/ for details.0Translate Group data into expected document formNExecute group query and return resulting aggregate value for each distinct key4Translate MapReduce data into expected document form+Translate MROut into expected document formMapReduce on collection with given map and reduce functions. Remaining attributes are set to their defaults, which are stated in their comments.aRun MapReduce and return cursor of results. Error if map/reduce fails (because of bad Javascript)Run MapReduce and return a MR result document containing stats and the results if Inlined. Error if the map/reduce failed (because of bad Javascript).6Run command against the database and return its result 'runCommand1 foo = runCommand [foo =: 1]Run code on server& is treated the same as a programming . In other words, don't use it. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~updates  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJPNOKLMQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~tumnopqrslhijkgvwxy`abcd^_]z|{ }~\XYZ[WUVTfeIJKLMNOPQRS HGFE?@ABCD>=56789:;<234&'()*+,-./01%$# !" !"#$%& '()*+,-./0123456789:;<=>?@ABCDEFGHI JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneJLTResult of isMaster command on host in replica set. Returned fields are: setName, ismaster, secondary, hosts, [primary]. primary only present when ismaster = falseRMaintains a connection (created on demand) to each server in the named replica setYRun command against admin database on server connected to pipe. Fail if connection fails.Default MongoDB port = 27017Host on JDisplay host as "host:port" TODO: Distinguish Service and UnixSocket portRead string "hostname:port" as Host hosthame (PortNumber port) or "hostname" as  host hostnameg (default port). Fail if string does not match either syntax. TODO: handle Service and UnixSocket portRead string "hostname:port" as Host hostname (PortNumber port) or "hostname" as  host hostname> (default port). Error if string does not match either syntax. (and Q) fails if it can't connect within this many seconds (default is 6 seconds). Use  'connect\'' (and 'openReplicaSet\'') if you want to ignore this global and specify your own timeout. Note, this timeout only applies to initial connection establishment, not when reading/writing to the connection.nConnect to Host returning pipelined TCP connection. Throw IOError if connection refused or no response within .Connect to Host returning pipelined TCP connection. Throw IOError if connection refused or no response within given number of seconds.name of connected replica setOpen connections (on demand) to servers in replica set. Supplied hosts is seed list. At least one of them must be a live member of the named replica set, otherwise fail. The value of m at the time of this call is the timeout used for future member connect attempts. To use your own value call 'openReplicaSet\'' instead.Open connections (on demand) to servers in replica set. Supplied hosts is seed list. At least one of them must be a live member of the named replica set, otherwise fail. Supplied seconds timeout is used for connect attempts to members.$Close all connections to replica setRReturn connection to current primary of replica set. Fail if no primary available.PReturn connection to a random secondary, or primary if no secondaries available.Return a connection to a host using a user-supplied sorting function, which sorts based on a tuple containing the host and a boolean indicating whether the host is primary.4Primary of replica set or Nothing if there isn't one.Non-arbiter, non-hidden members of replica setAFetch replica info from any server and update members accordinglyReturn new or existing connection to member of replica set. If pipe is already known for host it is given, but we still test if it is open.None!":Cache the indexes we create so repeatedly calling ensureIndex only hits database the first time. Clear cache every once in a while so if someone else deletes index we will recreate it on ensureIndex.Create collection with given options. You only need to call this to set options, otherwise a collection is created automatically on first use with no options.,Rename first collection to second collectionDelete the given collection! Return True if collection existed (and was deleted); return False if collection did not exist (and no action).This operation takes a whilehSpec of index of ordered keys on collection. Name is generated from keys. Unique and dropDups are False.,Create index if we did not already create one. May be called repeatedly with practically no performance hit, because we remember if we already called this for the same index (although this memory gets wiped out every 15 minutes, in case another client drops the index and we want to create it again).DCreate index on the server. This call goes to the server every time.Remove the index"Get all indexes on this collection#Drop all indexes on this collection@initialize cache and fork thread that clears it every 15 minutes$Get index cache for current database&reset index cache for current database Fetch all users of this databasebAdd user with password with read-only access if bool is True or read-write access if bool is False"admin" databaseQCopy database from given host to the server I am connected to. Fails and returns "ok" = 0W if we don't have permission to read from given server (use copyDatabase in this case).Copy database from given host to the server I am connected to. If username & password is supplied use them to read from given host.Delete the given database!AAttempt to fix any corrupt records. This operation takes a while. 7See currently running operation on the database, if any;     2     2     .     None4       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJPNOKLMQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     (c) Yuras Shumovich, 2016 Apache 2.0&Victor Denisov denisovenator@gmail.com experimentalPOSIXNone!"JConnect to mongodb using TLS     !"#$%&'()*+,-.//0123456789:;<==>?@ABCDEFGHIJKLMNOPPQRSTUVWXYZ[\]^[_`abcdeefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012345D6789:;<=>?@ABCDEFGHIJKLMNOP2QRSPTUVWXYZ[\]^_`abcdefghijklmmnopqrsDtuvwxyz{|}~Eij  $mongoDB-2.1.1-CYBkd58Y2afLHEoP6UpqV9Database.MongoDB.ConnectionDatabase.MongoDB.TransportDatabase.MongoDB.QueryDatabase.MongoDB.AdminDatabase.MongoDB.Transport.TlsDatabase.MongoDB.Internal.Util"Database.MongoDB.Internal.ProtocolDatabase.MongoDB&network-2.6.3.1-G4Up1CPKbp7DeFsnywOnGGNetwork UnixSocket PortNumberServicePortID Transportreadwriteflushclose fromHandlePasswordUsername QueryOptionTailableCursorNoCursorTimeout AwaitDataPartial DeleteOption SingleRemove UpdateOptionUpsert MultiUpdatePipeisClosedCommandMRResultMRMergeReplaceMergeReduceMROutInlineOutput FinalizeFun ReduceFunMapFun MapReducerCollrMaprReducerSelectrSortrLimitrOut rFinalizerScoperVerboseGroupKeyKeyKeyFGroupgCollgKeygReducegInitialgCond gFinalizePipelineCursorFindAndModifyOpts FamRemove FamUpdate famUpdatefamNew famUpsert BatchSizeOrderLimit ProjectorQueryoptions selectionprojectskiplimitsortsnapshot batchSizehintModifierSelectselectSelector Selectionselectorcoll CollectionDatabaseHasMongoContext mongoContext MongoContext mongoPipemongoAccessMode mongoDatabase DeleteResult UpdateResult GetLastError AccessMode ReadStaleOkUnconfirmedWrites ConfirmWrites ErrorCodeFailureConnectionFailureCursorNotFoundFailure QueryFailure WriteFailure DocNotFoundAggregateFailureActionaccessmasterslaveOk accessModeliftDB allDatabases thisDatabaseuseDbauth authMongoCR authSCRAMSHA1retrieveServerDataallCollectionswhereJSinsertinsert_ insertMany insertMany_ insertAll insertAll_savereplacerepsertupsertmodify updateMany updateAlldelete deleteOne deleteMany deleteAllfindfindOnefetchdefFamUpdateOpts findAndModifyfindAndModifyOptsexplaincountdistinct nextBatchnextnextNrest closeCursorisCursorClosed aggregategroup mapReducerunMRrunMR' runCommand runCommand1eval $fSelectQuery$fSelectSelection$fHasMongoContextMongoContext$fErrorFailure$fExceptionFailure$fShowAccessMode$fShowSelection $fEqSelection $fShowFailure $fEqFailure$fShowWriteMode $fEqWriteMode$fShowReadMode $fEqReadMode $fShowQuery $fEqQuery$fShowFindAndModifyOpts$fShowGroupKey $fEqGroupKey $fShowGroup $fEqGroup $fShowMRMerge $fEqMRMerge $fShowMROut $fEqMROut$fShowMapReduce $fEqMapReduce ReplicaSetReplicaSetNameSecsHost defaultPorthost showHostPort readHostPortM readHostPortglobalConnectTimeoutconnectconnect' replSetNameopenReplicaSetopenReplicaSet'closeReplicaSetprimary secondaryOk routedHost $fShowHost$fEqHost $fOrdHostOpNumMilliSecProfilingLevelOffSlowAllIndexiColliKeyiNameiUnique iDropDupsiExpireAfterSeconds IndexNameCollectionOptionCapped MaxByteSizeMaxItemscreateCollectionrenameCollectiondropCollectionvalidateCollectionindex ensureIndex createIndex dropIndex getIndexes dropIndexesallUsersaddUser removeUseradmin cloneDatabase copyDatabase dropDatabaserepairDatabaseserverBuildInfo serverVersioncollectionStatsdataSize storageSizetotalIndexSize totalSizegetProfilingLevelsetProfilingLeveldbStats currentOpkillOp serverStatus$fShowCollectionOption$fEqCollectionOption $fShowIndex $fEqIndex$fShowProfilingLevel$fEnumProfilingLevel$fEqProfilingLevelbytestring-0.10.8.1Data.ByteStringnull mergesortMshuffleloop untilSuccesstransformers-0.5.2.0Control.Monad.Trans.ErrorstrMsg untilSuccess'liftIOE updateAssocsbitOr<.>true1 byteStringHexbyteHex mergesortM' merge_pairsMmergeMwrapwhenJustCursorNotFound QueryError AwaitCapableReplyRequest rCursorIdSlaveOKqSkip qBatchSize qSelector qProjector KeepGoingNotice RequestIdFullCollectionResponseMessagevStream responseQueue newPipelinelistenpsendcallpcallnewPipe newPipeWithsend writeMessage readMessage genRequestId putHeader getHeaderNonce ResponseFlagrResponseFlags rStartingFrom rDocumentsGetMoreqOptionsqFullCollectiongFullCollection gBatchSize gCursorIdCursorId InsertOptionInsertUpdateDelete KillCursorsiFullCollectioniOptions iDocumentsuFullCollectionuOptions uSelectoruUpdaterdFullCollectiondOptions dSelector kCursorIds ResponseToOpcode ServerDataisMasterminWireVersionmaxWireVersionmaxMessageSizeBytesmaxBsonObjectSizemaxWriteBatchSize listenThread serverDatanOpcode putNoticeiBitiBitsuBituBitsdBitdBitsqOpcode putRequestqBitqBits replyOpcodegetReplyrFlagsrBitpwHashpwKeyBatch DelayedBatchFreshStaleOk NoConfirmConfirmbaseGHC.Errerrorinsert' insertBlockassignIdupdatequery queryRequestbatchSizeRemainingLimitrequest fromReplyfulfill newCursor groupDocument mrDocumentmrOutDocGHC.BasefailReadMode WriteModereadMode writeMode mongoReadModemongoWriteModescramHI parseSCRAMinsertCommandDocument splitAtLimitsizeOfDocumentupdateCommandDocumentupdate' updateBlock deleteHelperdeleteCommandDocumentdelete' deleteBlockreadModeOptionfulfill' nextBatch' ReplicaInfo adminCommand statedPrimary possibleHosts updateMembers connectionfetchReplicaInfo DbIndexCache dbIndexCachefetchIndexCacheresetIndexCache IndexCachecoptElem idxDocumentgenNameclearDbIndexCache#bson-0.3.2.3-34i8Y0vAqrI67v5fDXnBlK Data.Bson genObjectId timestamp typeOfValtypedcastfval=?=:mergeexcludeincludeatvalueAtlookuplook!? showHexLenDocumentField:=valuelabelLabelValueBoolFloatInt32Int64ArrayStringNullDocBinFunUuidMd5UserDefObjIdUTCRegExJavaScrSymStampMinMaxValvalvalListvalMaybecast' cast'List cast'MaybeBinaryFunctionUUIDMD5 UserDefinedRegex JavascriptSymbol MongoStamp MinMaxKeyMinKeyMaxKeyObjectIdOid tlsConnection