AbstractThe code comes with a MIT-style license so you can basically do with it whatever you want.
Download shortcut: http://github.com/fons/cl-mongo.
$ &rest args => result
$!= &rest args => result
$!in &rest args => result
$+ arg &rest args => result
$- arg &rest args => result
$/ regex options => result
$< &rest args => result
$<= &rest args => result
$> &rest args => result
$>= &rest args => result
$add-to-set &rest args => result
$all &rest args => result
$em array &rest args => result
$exists &rest args => result
$in &rest args => result
$inc &rest args => result
$index collection &rest args => result
$map-reduce collection map reduce &key query limit out keeptemp finalize verbose => result
$mod &rest args => result
$not &rest args => result
$pop-back &rest args => result
$pop-front &rest args => result
$pull &rest args => result
$pull-all &rest args => result
$push &rest args => result
$push-all &rest args => result
$set &rest args => result
$unset &rest args => result
$where &rest args => result
database opened by the default connection
host for the default connection.
port for the default connection.
root of the repository; used for documentation generation
add-element key value document => result
add element with key and value to a document
cwd &key mongo => result
Show the current database.
date-time second minute hour day month year &optional time-zone => result
Generate a time stamp the mongo/bson protocol understands.
db.add-user username password &key mongo readonly => result
Add a user to the database.
db.auth username password &key mongo => result
authenticate a user with a password
db.collections &key mongo => result
db.collections &key mongo => result
Show all the collections in the current database.
db.count collection selector &key mongo => result
Count all the collections satifying the criterion set by the selector. :all can be used to return a count of all the documents in the collection.
db.create-collection collection &key => result
create a collection
db.delete collection object &key mongo => result
Delete a document from a collection. The *document* field is used to identify the document to be deleted. You can enter a list of documents. In that the server will be contacted to delete each one of these. It may be more efficient to run a delete script on the server side.
db.distinct collection key &key mongo => result
Return all the distinct values of this key in the collection
db.ensure-index collection keys &key drop-duplicates unique mongo asc => result
Create an index specified by the keys in a collection
db.eval code &rest rest => result
db.find collection kv &key selector limit skip options mongo => result
Find documents in the collection using the selector specified by kv. Methods take two keywords. ':limit' sets the maximum number of documents returned. The default is 1. ':skip' sets the number of documents to skip in this query. It's default is 0. Since the default value of the limit is one, db.find by default is the equivalant of *findOne* in the mongo documentation.
db.indexes &key mongo => result
db.indexes &key mongo => result
Return all indexes in the database.
db.insert collection document &key mongo => result
Insert a document in a collection. A document is typically generated by `(make-document)`, but it can also be a hash table, a key-value pair or kv list (see the kv functions).
db.iter result &key limit mongo => result
next document iteration
db.next collection cursor-id &key limit mongo => result
Executes the next call on the iterator identified by cursor-id.
db.run-command cmd &key arg mongo collection index => result
Run a database command on the server. See the mongo documentation for a list of commands. For most commands you can just uses the key-value shown in the mongo documentation.
db.save collection document &key mongo => result
Save a document to the collection. If the document has a unique `_id` value (i.e. if it's generated by `(make-document)` ) it will be 'upserted' (that is: it will be inserted if the document doesn't exist). If the document a hash table or a kv set, it will be inserted. In other words this a a helper-function build around *db.insert* and *db.update*.
db.sort collection query &rest args => result
sort macro : Takes the same arguments and keywords as db.find but converts the query so it works as a sort. use the :field keyword to select the field to sort on. Set :asc to nil to reverse the sort order
db.stop cursor &key mongo => result
Stop iterating and clean up the iterator on the server by making a server call.
db.update collection selector new-document &key mongo upsert multi => result
In a collection update the document(s) identified by the selector statement. This method has two keywords. ':upsert' : If t insert the document if the document cannot be found in the collection. ':multi' : Update all documents identified by the selector.
db.use db &key mongo => result
Use a database on the mongo server. Opens a connection if one isn't already established. (db.use -) can be used to go to a previosuly visited database, similar to cd -.
defjs name args declaration* statement* => result
defsrvjs name args declaration* statement* => result
do-query coll &key map-fn reduce-fn initial-value query mongo limit selector => result
Performs a multi-threaded query on a mongo database. coll is the collection name. The reduce-fn keyword is used to specify a function which will be called for each member of a batch of data returned from mongodb. The reduce-fn function is executed while the query for the next batch is in progress. The default for reduce-fn is the identity function. The reduction keyword is used to specify a function which is executed when the database queries have finished. It's default implementation is to return a hash table, with the mongodb id as the hash key. The query, mongo, limit and selector keywords are used in the same way as for db.find.
doc-id doc => result
return the unique document id
docs result => result
Stop the iterator (if any) and return the list of documents returned by the query. Typical ue would be in conjunction with db.find like so (docs (iter (db.find 'foo' 'll)))
document Document class. A document consists of key/value pairs stored in a internal hash table plus an internally generated unique id. Accessors are : 'elements' which returns the internal hash table; '_id' which returns the unique id and '_local_id' which if true means that the document was generated by the client (as opposed to having been read from the server).
generate-readme &key path => result
This function generates a README.md file with the latest api description. The :path keyword specifies the location. It expects a sub-directory <path>/doc. Api documentation is generated on the fly, by extracting comments from the classes, generics and fuctions exported in the packages file. The resulting file is <path>/doc/index.html. <path>/README.md is generated by appending the api documentation to <path>/doc/readme-base.md. :path or *REPO-ROOT* are typically set to the root of the repository.
get-element key document => result
Get an element identified by key from the document.
ht->document ht => result
Convert a hash-table to a document.
install-js name => result
iter result &key mongo max-per-call => result
Exhaustively iterate through a query. The maximum number of responses per query can be specified using the max-per-call keyword.
jsdef name => result
kv a &rest rest => result
This a helper function for key-value pairs and sets of key-value pairs. In a key-value pair like (kv key value) the key has to be a string and the value something which is serializable. key-value pairs can be combined using kv as well : (kv (kv key1 val1) (kv key2 val2)). This combination of key-value pairs is equivalent to a document without a unique id. The server will assign a unique is if a list of key-value pairs is saved.
make-document &key oid size => result
Constructor. key ':oid' is a user supplied unique id. An internal id will be generated if none is supplied.
mapdoc fn document => result
Encapsulates the connection to the mongo database. Each connection is a added to a global registry.
mongo &key host port db name host port db name => result
This method returns the connection referred to by the name identifier from the connection registry. The connection name is unique. If no connection with that name exists, a new connection with the supplied or default host, port and db parameters will be created. The default host is localhost; the default port is 27017; the default db is admin.
mongo-close name => result
Close the connection to the mongo database. The name should uniquely identify the connection to close. This is either a mongo object or the name the object is bound to in the connection registry. To close all open connections use the special symbol 'all
mongo-registered name => result
Return a conection registered by this name or nil..
mongo-show => result
Show all registered connections and their session id
mongo-swap left right => result
Swap the names of the left and right connections. Typical use would be `(mongo-swap :default :alt)`. After the function call :default will refer to the connection previously referred to as :alt. A connection named :default is returned by `(mongo)` and is the default used in the api. The connections are returned in the order they were passed in (but with the names swapped between them). To re-open a connection you can say `(mongo-close (mongo-swap :default (mongo :host <newhost> :portid <portid> :name :temp)))` and a new default connection is registered.
mr.gc &key mongo => result
remove the temporary collections created by map-reduce
mr.gc.all &key mongo => result
remove the all collections created by map-reduce, temporary as well as permanent
mr.p results => result
show the contents of the results collection map-reduce created
nd result &key stream => result
Pretty-print for non-document responses, like the response to a database command.
now => result
Return the current date and time in bson format.
nwd => result
Show the database set by the `(db.use -)` command
pp result &key nd stream => result
Pretty-print the results returned from a query. To be used on the repl. This will format each server reply as if it were a document. This is obviously ok in mosty cases. See nd for an alternative.
remove-js name => result
ret result => result
return value bound to retval in a return document. Used for db.count, db.distinct, functions etc..
rm collection query &key mongo => result
Delete all the documents returned by a query. This is not an efficient way of deleting documents as it invloves multiple trips to the server. Mongo allows for execution of java-script on the server side, which provides an alternative. Typical use would be (rm (iter (db.find 'foo' (kv 'key' 1)))), which deletes all documents in foo, with field key equal to 1.
rm-element key document => result
Remove element identified by key from a document
show things &key msg nl order => result
Print a list of things. Things can be users, databases, collections in the current database, the profile and more. Things is a keyword so (show :users) will show all users.
time-zone => result
Set the time zone appropriate for the current environment.
with-mongo-connection args &rest body => result
Creates a connection to a mongodb, makes it the default connection and evaluates the body form. args uses the same keyword set as mongo (:db :localhost :port) args is passed on to make-mongo when the connection is created.
This documentation was prepared with DOCUMENTATION-TEMPLATE.
$Header: /usr/local/cvsrep/documentation-template/output.lisp,v 1.14 2008/05/29 08:23:37 edi Exp $
BACK TO MY HOMEPAGE