Skip to content

marcesher/cfmongodb

develop
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
This branch is 118 commits ahead, 7 commits behind virtix:master.

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
doc
 
 
 
 
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 

CFMongoDB

CFMongoDB is both partial wrapper for the MongoDB Java driver and a document-struct mapper for ColdFusion. It attempts to remove the need for constant javacasting in your CFML when working with MongoDB. Additionally, there’s a simple DSL which provides ColdFusion developers the ability to easily search MongoDB document collections.

CFMongoDB works with Adobe ColdFusion 9.0.1+ and Railo 3.2+

Notes

As of August 20, 2011, collection.update(), collection.findAndModify(), and “sort” all introduced breaking changes!

update() and findAndModify()

They no longer wrap documents in {$set} automatically.

You will need to change your “update” documents like so:

old: {newField="hey"}

new: { “$set” = {newField="hey"} }

sort

Sort must now be a structure… string support is no longer supported.

old: find(sort=“TS=-1”)

new: find(sort={"TS"=-1})

Some Code

One of the most appealing aspects is that data can be created as a ColdFusion structure and persisted almost verbatim. Example:

<cfscript>

//save
col = mongo.getDBCollection( 'my_collection' );
my_struct = {
  name = 'Orc #getTickCount()#'
  foo = 'bar'
  bar = 123
  'tags'=[ 'cool', 'distributed', 'fast' ]
};

col.save( my_struct );

//query
result = col.query().startsWith('name','Orc').find(limit=20);
writeOutput("Found #result.size()# of #result.totalCount()# Orcs");

//use the native mongo cursor. it is case sensitive!
cursor = result.asCursor();
while( cursor.hasNext() ){
  thisOrc = cursor.next();
  writeOutput(" name = #thisOrc['name']# <br>");
}

//use a ColdFusion array of structs. this is not case sensitive
orcs = result.asArray();
for(orc in orcs){
  writeOutput(" name = #orc.name# <br>");
}

</cfscript>

More Examples

See examples/gettingstarted.cfm to start.

Additional examples are in the various subdirectories in examples/

The Wiki

Check out the wiki for additional info: http://wiki.github.com/marcesher/cfmongodb/

Getting Help

We have a Google group: http://groups.google.com/group/cfmongodb

Please limit conversations to MongoDB and ColdFusion. General MongoDB questions are best asked on the MongoDB group at http://groups.google.com/group/mongodb-user

Posting Issues

Post issues to the github issue tracker for the project. Better: post fixes. Best: post fixes with unit tests.

Getting Involved

Collaboration is welcome. Fork — Commit — Request a pull. For bug fixes and feature additions, commits with unit tests are much more likely to be accepted.

Code well.

About

MongoDB client wrapper for ColdFusion

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • ColdFusion 95.2%
  • Java 4.8%