Category Archives: MongoDB

Liqueed Project (1)

Next Post

Today, I want to present the Liqueed Project, see repo at:

https://github.com/liquid-co-ops/liqueed

It is a web application based on an idea by @acyment, read post:

http://blog.agilar.org/index.php/2014/04/30/leancoops-first-draft/

The basic idea of the application is to help teams that are developing something in the way that Cyment suggested, on the issue of allocation of shares on the project. For several months, the application (code, backlog, ideas, implementation, hosting and others) has been putting together by a “liquid” team (with entry and exit of people)

In this series of posts starting today I want to discuss interesting technical issues raised by the project. For today, I commented that:

– It is a Node.js application, exposed to the web using Express. Bringing the programming language is JavaScript.

– In addition to some internal administration pages with MVC, has an API exposed, exchanging JSON.

‘- There’s an app Single Page which is what would have to use the end user to view projects, voting, distributions of shares and to enter new ratings

– Most of the code was written using the workflow of TDD (Test-Driven Development). Even the first code implemented the model in memory, allowing easier progress on the implementation of use cases, without bothering about persistence (even the SPA client can run without having a walk server)

– A few months ago, we added persistence with MongoDB. We could use another database, relational perhaps. We are not taking advantage of the facilities to handle documents MongoDB yet. Only chose it for its ubiquity in development platforms and different Node hosting services.

– Some weeks ago, we added Istambul for code coverage.

– When TDD tests for pure code began to be long, we created a textual DSL (Domain Specific Language) that allows us to write text files for more complicated functional tests.

– Begin to add tests of SPA (Single Page Application) using Zombie

And there are more details and topics to comment, in the upcoming posts.

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

MongoDB: Links, News, And Resources (8)

Previous Post

Does a good framework for MongoDB "schema" upgrades in Scala exist? – Stack Overflow
http://stackoverflow.com/questions/7003446/does-a-good-framework-for-mongodb-schema-upgrades-in-scala-exist

.: MongoDB course note 6
http://hao-deng.blogspot.com.ar/2013/06/mongodb-course-note-6.html

A little about CouchDB (and comparison with MongoDB)
http://petrush.in/blog/2013/a-little-about-cochudb-and-comparison-with-mongodb/show

MongoDB, Inc. Joins us to talk about MMS (MongoDC – DC Edition) – Washington DC MongoDB Users Group (Washington, DC) – Meetup
http://www.meetup.com/Washington-DC-MongoDB-Users-Group/events/135500082/

Tutorial – Getting Started With Node.js, Express, MongoDB | Christopher Buecheler – Web, Writing, Cocktails and More
http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/

Webinar: What’s New with MongoDB Hadoop Integration | MongoDB
http://www.mongodb.com/presentations/webinar-whats-new-mongodb-hadoop-integration

Rolling Your Own RSS Feed with Express and Jade
http://davidwalsh.name/rss-express

Mean
http://www.mean.io/

Developing mobile apps with Node.js and MongoDB, Part 2: Hints and tips
http://www.ibm.com/developerworks/mobile/library/mo-nodejs-2/index.html

Developing mobile apps with Node.js and MongoDB, Part 1: A team’s methods and results
http://www.ibm.com/developerworks/java/library/mo-nodejs-1/index.html

NoSQL Battle of the East Coast – Benchmarking MongoDB vs TokuMX Cluster | Severalnines
http://www.severalnines.com/blog/nosql-battle-east-coast-benchmarking-mongodb-vs-tokumx-cluster

MongoDB and server performance
http://www.slideshare.net/alonhorev/mongodb-and-server-performance

MongoLab: MongoDB-as-a-Service (MongoDB hosting)
https://mongolab.com/welcome/

My Links
http://delicious.com/ajlopez/mongodb

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

MongoDB: Links, News, And Resources (7)

Previous Post
Next Post

Constructing Web APIs with Rack, Sinatra and MongoDB
http://www.slideshare.net/oisin/constructing-web-apis-with-rack-sinatra-and-mongodb

MongoDB – Server Density Blog
https://blog.serverdensity.com/mongodb/

kunal/sinatra-mongodb-sample
https://github.com/kunal/sinatra-mongodb-sample

Backbone, Node, Express, and More: An Introduction to Full-Stack JavaScript, with Init.js | Toptal
http://www.toptal.com/javascript/guide-to-full-stack-javascript-initjs

sntd – Upcoming events
http://sntd.pw/meetups/by-city/51fd523f920fc20200007344
webdevelopment mongodb example nodejs
2013-08-12T13:08:01Z

Something New To Do
https://github.com/caulagi/sntd
Webapp to allow people to easily track what is happening in a city.

Core MongoDB Operations (CRUD)
http://docs.mongodb.org/manual/crud/

Queries — MongoDB Node.JS Driver 1.3.13 documentation
http://mongodb.github.io/node-mongodb-native/markdown-docs/queries.html

JsDoc Reference – Index
http://api.mongodb.org/js/current/

Get ID of last inserted document in a mongoDB w/ Java driver – Stack Overflow
http://stackoverflow.com/questions/3338999/get-id-of-last-inserted-document-in-a-mongodb-w-java-driver

My Links
http://delicious.com/ajlopez/mongodb

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

MongoDB: Links, News, And Resources (6)

Previous Post
Next Post

New Course: Introduction to MongoDB | the pluralsight blog
http://blog.pluralsight.com/2013/07/11/new-course-introduction-to-mongodb/

Paul Scott | Rants and musings
http://paulscott.co.za/blog/

Julian Hyde on Streaming Data, Open Source OLAP. And stuff.: Efficient SQL queries on MongoDB
http://julianhyde.blogspot.co.uk/2013/06/efficient-sql-queries-on-mongodb.html

MongoDB Aggregation Framework Examples in C# – Mikael Koskinen
http://mikaelkoskinen.net/mongodb-aggregation-framework-examples-in-c/

sergeyksv/tingodb
https://github.com/sergeyksv/tingodb
Embedded Node.js database upward compatible with MongoDB
http://www.tingodb.com

Better MongoDB Performance | Tokutek
http://www.tokutek.com/2013/06/announcing-tokumx-v1-0-tokumongo-you-can-have-it-all-2/

Webinar: General Technical Overview of MongoDB for Dev Teams | 10gen
http://www.10gen.com/presentations/webinar-general-technical-overview-mongodb-dev-teams

How to Set Up a MongoDB NoSQL Cluster Using Oracle Solaris Zones
http://www.oracle.com/technetwork/articles/servers-storage-admin/sol-howto-mongodb-zones-1954559.html

Julian Hyde on Streaming Data, Open Source OLAP. And stuff.: Efficient SQL queries on MongoDB
http://julianhyde.blogspot.com.ar/2013/06/efficient-sql-queries-on-mongodb.html

Amazon.com: MongoDB Aggregation Framework Principles and Examples eBook: John Lynn: Kindle Store
http://www.amazon.com/gp/product/B00DGKGWE4/ref=as_li_ss_tl

Building a Localized Bidding Platform with MongoDB – New York MongoDB User Group (New York, NY) – Meetup
http://www.meetup.com/New-York-MongoDB-User-Group/events/120394942/

10gen Education
https://education.10gen.com/

MongoNYC 2013 | 10gen
http://www.10gen.com/events/mongonyc-2013

Webinar: MongoDB for Content Management | 10gen
http://www.10gen.com/presentations/webinar-mongodb-content-management

shubik/prometheus · GitHub
https://github.com/shubik/prometheus
ODM for Node.js with adapter for MongoDB, with built-in form builder and form parser

My Links
http://delicious.com/ajlopez/mongodb

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

MongoDB: Links, News, And Resources (5)

Previous Post
Next Post

MongoDB with Jongo – sleeves up! – For the sake of imagination
http://ingini.org/2013/04/03/mongodb-with-jongo-sleeves-up/

alexferreira/restgen · GitHub
https://github.com/alexferreira/restgen

10 questions to ask (and answer) when hosting MongoDB on AWS
http://blog.mongodirector.com/10-questions-to-ask-and-answer-when-hosting-mongodb-on-aws/

The MongoDB NoSQL Database Blog, The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and

How NoSQL, MySQL and MongoDB worked together to solve a big-data problem
http://www.theserverside.com/feature/How-NoSQL-MySQL-and-MogoDB-worked-together-to-solve-a-big-data-problem

Building Single Page Web Applications with Backbone.js, JaxRS, MongoDB, and OpenShift | OpenShift by Red Hat
https://www.openshift.com/blogs/building-single-page-web-applications-with-backbonejs-jaxrs-mongodb-and-openshift

Analytics: Analyzing tracked events
http://goshakkk.name/analytics-analyzing-tracked-events/

Building Web Applications with MongoDB: An Introduction | 10gen
http://www.10gen.com/presentations/building-web-applications-mongodb-introduction

MongoDB San Francisco 2013 | 10gen
http://www.10gen.com/events/mongodb-san-francisco-2013

Docs | InvaNode
http://www.invanode.org/docs

InvaNode
http://www.invanode.org/

i-vetrov/InvaNode-mongo · GitHub
https://github.com/i-vetrov/InvaNode-mongo
InvaNode CMS with MongoDB

danparn/brumba · GitHub
https://github.com/danparn/brumba
Build desktop-like Web applications with Node.js and MongoDb on server

MongoDB March Madness Hackathon – London MongoDB User Group (London, England) – Meetup
http://www.meetup.com/London-MongoDB-User-Group/events/106898042/

yobriefca.se
http://yobriefca.se/

xavi/noir-auth-app · GitHub
https://github.com/xavi/noir-auth-app
A complete authentication web app based on Clojure/ClojureScript, Compojure, lib-noir, Enlive and MongoDB.

astalker/nblog · GitHub
https://github.com/astalker/nblog
A Simple CMS module for Node Js using Express, EJS and Mongo

Episode 101 – Real-World Windows Azure with Auth0 | Windows Azure Cloud Cover Show | Channel 9
http://channel9.msdn.com/Shows/Cloud+Cover/Episode-101-Real-World-Windows-Azure-with-Auth0

I’ll Give MongoDB Another Try. In Ten Years. | Diego Basch’s Blog
http://diegobasch.com/ill-give-mongodb-another-try-in-ten-years

MongoDB Is Still Broken by Design 5-0 • myNoSQL
http://nosql.mypopescu.com/post/42524689600/mongodb-is-still-broken-by-design-5-0

My Links
http://delicious.com/ajlopez/mongodb

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

MongoDB: Links, News, And Resources (4)

Previous Post
Next Post

Broken by Design: MongoDB Fault Tolerance :: Hacking, Distributed
http://hackingdistributed.com/2013/01/29/mongo-ft/

cha0s/mongoose-api · GitHub
https://github.com/cha0s/mongoose-api

jawerty/Node2Blog · GitHub
https://github.com/jawerty/node2blog
A simple and easy to setup node.js blog template. For the casual blogger.

Getting Started with Node.js on Heroku | Heroku Dev Center
https://devcenter.heroku.com/articles/nodejs

Open Source PHP E-Commerce Platform With MongoDB – Forward
http://www.webresourcesdepot.com/open-source-php-e-commerce-platform-with-mongodb-forward/

Object Modeling in Node.js with Mongoose | Heroku Dev Center
https://devcenter.heroku.com/articles/nodejs-mongoose

Precog
http://www.precog.com/
Analytics for modern data

The MongoDB NoSQL Database Blog, Introducing MongoClient
http://blog.mongodb.org/post/36666163412/introducing-mongoclient

oteroleonardo/raphael-socket.io-express-mongoose · GitHub
https://github.com/oteroleonardo/raphael-socket.io-express-mongoose
A cool demo web app to show Node.js, Raphaeljs, socket.io, Express.js, Mongoose and MongoDB integration

Hybrid Applications with MongoDB and RDBMS – a session at Øredev 2012
http://oredev.org/2012/sessions/hybrid-applications-with-mongodb-and-rdbms

Softaculous AMPPS
http://www.ampps.com/

Creating a REST API using Node.js, Express, and MongoDB
http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/

javascript – Do you know any tutorial for mongoDB in nodeJS? – Stack Overflow
http://stackoverflow.com/questions/6166322/do-you-know-any-tutorial-for-mongodb-in-nodejs

kulakowka/nodejs-express-stylus-mongodb-example
https://github.com/kulakowka/nodejs-express-stylus-mongodb-example

Scaling with MongoDB
http://www.slideshare.net/mongodb/scaling-4868170

Fun with MongoDB replica sets | Foursquare Engineering Blog
http://engineering.foursquare.com/2011/05/24/fun-with-mongodb-replica-sets/

madhums/nodejs-express-mongoose-demo
https://github.com/madhums/nodejs-express-mongoose-demo

adrai/node-viewmodel
https://github.com/adrai/node-viewmodel

My Links
http://delicious.com/ajlopez/mongodb

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

MongoDB: Links, News, And Resources (3)

Previous Post
Next Post

NodeCellar: Sample Application with Backbone.js, Twitter Bootstrap, Node.js, Express, and MongoDB
http://coenraets.org/blog/2012/10/nodecellar-sample-application-with-backbone-js-twitter-bootstrap-node-js-express-and-mongodb/

10gen – MongoDB Presentations – Webinar: What’s new in the .NET Driver
http://www.10gen.com/presentations/webinar/whats-new-in-the-net-driver-update

rna-js
https://npmjs.org/package/rna-js

ReactiveMongo for Scala: Unleashing MongoDB Streaming capabilities for Realtime Web
http://stephane.godbillon.com/2012/08/30/reactivemongo-for-scala-unleashing-mongodb-streaming-capabilities-for-realtime-web

Implementing Aggregation Functions in MongoDB
http://www.infoq.com/articles/implementing-aggregation-functions-in-mongodb

The Trello Tech Stack – Fog Creek Blog
http://blog.fogcreek.com/the-trello-tech-stack/

10gen – MongoDB Events – MongoDB Buenos Aires 2012
http://www.10gen.com/events/mongodb-buenos-aires-2012

Rails – Getting Started – MongoDB
http://www.mongodb.org/display/DOCS/Rails+-+Getting+Started

Ruby Language Center – MongoDB
http://www.mongodb.org/display/DOCS/Ruby+Language+Center

Rails 3 – Getting Started – MongoDB
http://www.mongodb.org/display/DOCS/Rails+3+-+Getting+Started

MongoDB Data Modeling and Rails – MongoDB
http://www.mongodb.org/display/DOCS/MongoDB+Data+Modeling+and+Rails

#238 Mongoid – RailsCasts
http://railscasts.com/episodes/238-mongoid

MongoDB (is) For Rubyists – Boston Ruby
http://www.slideshare.net/kbanker/mongodb-is-for-rubyists-boston-ruby

ahe/mongo_admin
https://github.com/ahe/mongo_admin

kneath/watchtower
https://github.com/kneath/watchtower/

Paging & Ranking With Large Offsets: MongoDB vs Redis vs PostgreSQL
http://openmymind.net/Paging-And-Ranking-With-Large-Offsets-MongoDB-vs-Redis-vs-Postgresql/

A-tour-of-Opa – Opa Documentation
http://doc.opalang.org/

Understanding MapReduce in MongoDB, with Node.js, PHP (and Drupal) | Tech Blog by New Leaf Digital | Ben Buckman.net
http://benbuckman.net/tech/12/06/understanding-mapreduce-mongodb-nodejs-php-and-drupal

Rob Conery – Real World NodeJS – Creating the Tekpub API on Vimeo
http://vimeo.com/43548699

The Node.JS MongoDB Driver Manual — MongoDB Node.JS Driver 1.0.1 documentation
http://mongodb.github.com/node-mongodb-native/

Perform Two Phase Commits | The MongoDB Cookbook
http://cookbook.mongodb.org/patterns/perform-two-phase-commits/

Quick tip: Share a large MongoDB query object between the CLI and Node.js | Tech Blog by New Leaf Digital | Ben Buckman.net
http://benbuckman.net/tech/12/05/quick-tip-share-large-mongodb-query-object-between-cli-and-nodejs

InfoQ: Introduction to MongoDB for Java, PHP and Python Developers
http://www.infoq.com/articles/mongodb-java-php-python

Mongoose v3 :: The Future is Bright
http://www.slideshare.net/aaronheckmann/mongoose-v3-the-future-is-bright

My Links
http://delicious.com/ajlopez/mongodb

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

MongoDB: Links, News, And Resources (2)

Previous Post
Next Post

Powered by MongoDB: Rafflecopter
http://blog.10gen.com/post/23286533820/powered-by-mongodb-rafflecopter
Rafflecopter is a web app that helps online publishers run sweepstakes on
their own blogs and other sites.

Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs
Neo4j comparison
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis/

ric03uec / nodeblox
https://github.com/ric03uec/nodeblox
an extensive nodejs tutorial

MongoDB for Akka Persistence
http://debasishg.blogspot.com/2009/08/mongodb-for-akka-persistence.html

MongoDB, Java and Object Relational Mapping
http://www.infoq.com/articles/mongodb-java-orm-bcd
Today’s NoSQL landscape includes a number of very capable contenders
tackling big data problems in many different ways. One of these contenders
is the very capable MongoDB. MongoDB is a document-oriented schema-less
storage solution that uses JSON-style documents to represent, query and
modify data.

A Year with MongoDB
http://blog.engineering.kiip.me/post/20988881092/a-year-with-mongodb

How can I set up MongoDB on a Node.js server using node-mongodb-native in
an EC2 environment?
http://stackoverflow.com/questions/4789045/how-can-i-set-up-mongodb-on-a-node-js-server-using-node-mongodb-native-in-an-ec2

Creating a simple blog with node.js, express and mongodb
http://planetcakephp.org/aggregator/items/5634-creating-a-simple-blog-with-nodejs-express-and-mongodb

Getting Started with MongoDB and Node.js
http://www.slideshare.net/ggoodale/getting-started-with-mongodb-and-nodejs

A simple log server using express, nodejs, and mongodb
http://www.codeproject.com/Articles/356975/A-simple-log-server-using-express-nodejs-and-mongo

Building Backbone.js Apps With Ruby, Sinatra, MongoDB and Haml
http://addyosmani.com/blog/building-backbone-js-apps-with-ruby-sinatra-mongodb-and-haml/

Making a ToDo list with node.js, MongoDB, Mongoose, MongoHQ, and Heroku
http://lalexgraham.wordpress.com/2011/12/27/making-a-todo-list-with-node-js-express-mongodb-mongoose-mongohq-and-heroku/

ToolPartTeam / backbone-mongodb
https://github.com/ToolPartTeam/backbone-mongodb

Composition Of Responsibility vs Interface Implementation
http://lostechies.com/derickbailey/2012/01/03/composition-of-responsibility-vs-interface-implementation/

Using MongoDB with ASP.NET Web API
http://blogs.msdn.com/b/henrikn/archive/2012/02/19/using-web-api-with-mongodb.aspx

Hadoop plugin for MongoDB: The Elephant in the Room
http://www.10gen.com/events/hadoop

Clojure demo web application using Ring, Compojure, MongoDB and Fusion
http://www.youtube.com/watch?v=4CFy5C2OvM4&feature=youtu.be

Heroku, mongo, node.js – a problem
http://swizec.com/blog/heroku-mongo-node-js-a-problem/swizec/3565

marcello3d / node-mongolian
https://github.com/marcello3d/node-mongolian

Using MongoDB on Mono
http://www.infoq.com/presentations/using-MongoDB-on-Mono
Justin Dearing presents a brief introduction to MongoDB, and focuses on
interacting with it in Mono via the official 10gen driver. Techniques for
handling business logic in application code, such as LINQ are discussed.
This is a very code centric talk.

MongoDB – How To Benchmark and Test Performance Using mongo-perf
http://blog.beyondfog.com/mongodb-how-to-benchmark-and-test-performance-using-mongo-perf/

MongoDB – Operations in the New Aggregation Framework
http://blog.mongodb.org/post/16015854270/operations-in-the-new-aggregation-framework

mongodb / mongo-hadoop
https://github.com/mongodb/mongo-hadoop

Rails Caching Benchmarked: MongoDB, Redis, Memcached
http://nosql.mypopescu.com/post/13493023635/rails-caching-benchmarked-mongodb-redis-memcached

My Links
http://delicious.com/ajlopez/mongodb

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

SharpMongo (2) a REPL

Previous Post

I’m working on my document in-memory store project, written in C#

https://github.com/ajlopez/SharpMongo

It tries to implement the same operations as MongoDB: to have document bases, collections, documents, dynamic objects, etc. But with a difference: all is in-memory, and by now, in the same process. Persistence will be added as a plugin.

One of the tools I wanted to build is a REPL (Read Eval Print Loop), a console program that emulates the main functions of the MongoDB console client. The MongoDB program talks againts a server. SharpMongo, in the current version, only works in the same process memory, no persistence is implemented, yet.

The project is SharpMongo.Console. It compiles an assembly named sharpmongo.exe. You can launch it from command line:

SharpMongo 0.0.1
> show dbs
> show collections
> use foo
> show dbs
foo  

Now, we are in a db (document base), named ‘foo’. We can create a collection inserting dynamic documens, in a JSON-like format:

> db.people.insert({ Name: 'Adam', Age: 800 })
> db.people.insert({ Name: 'Eve', Age: 700 })
> show collections
people  

We can find the documents in a collection:

  > db.people.find()
{ "Name": "Adam", "Age": 800, "Id": 4d802e11-a038-468e-bd26-38e96ad6f7d8 }
{ "Name": "Eve", "Age": 700, "Id": b29917f1-70f1-4f6c-95bb-f789fa9bf3c0 }  

We can find documents, filtering them using a criteria, expressed in a dinamic object as first parameter (a la query by example):

  > db.people.find({ Name: 'Adam' })
{ "Name": "Adam", "Age": 800, "Id": 4d802e11-a038-468e-bd26-38e96ad6f7d8 }  

We can insert more documents:

> db.people.insert({ Name: 'Cain', Age: 600 })
> db.people.insert({ Name: 'Abel', Age: 500 })
> db.people.find()
{ "Name": "Adam", "Age": 800, "Id": 4d802e11-a038-468e-bd26-38e96ad6f7d8 }
{ "Name": "Eve", "Age": 700, "Id": b29917f1-70f1-4f6c-95bb-f789fa9bf3c0 }
{ "Name": "Cain", "Age": 600, "Id": a5a3e1af-7e5c-4c16-829e-c07f94bc8697 }
{ "Name": "Abel", "Age": 500, "Id": c1da0055-8ded-4540-876f-5c032f514ed3 }  

We can insert and remove documents:

> db.people.insert({ Name: 'Pluto' })
> db.people.find()
{ "Name": "Adam", "Age": 800, "Id": 4d802e11-a038-468e-bd26-38e96ad6f7d8 }
{ "Name": "Eve", "Age": 700, "Id": b29917f1-70f1-4f6c-95bb-f789fa9bf3c0 }
{ "Name": "Cain", "Age": 600, "Id": a5a3e1af-7e5c-4c16-829e-c07f94bc8697 }
{ "Name": "Abel", "Age": 500, "Id": c1da0055-8ded-4540-876f-5c032f514ed3 }
{ "Name": "Pluto", "Id": 0561864a-470a-4437-9467-773ffb5a438a }
> db.people.remove({ Name: 'Pluto' })
> db.people.find()
{ "Name": "Adam", "Age": 800, "Id": 4d802e11-a038-468e-bd26-38e96ad6f7d8 }
{ "Name": "Eve", "Age": 700, "Id": b29917f1-70f1-4f6c-95bb-f789fa9bf3c0 }
{ "Name": "Cain", "Age": 600, "Id": a5a3e1af-7e5c-4c16-829e-c07f94bc8697 }
{ "Name": "Abel", "Age": 500, "Id": c1da0055-8ded-4540-876f-5c032f514ed3 }   

There are missing parts, the most important one could be the support of operators in query objects, that could allow us to apply more complex criteria, beyond equality, and operators in the update operation. All will be added using TDD, as usual.

Keep tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

SharpMongo (1) First Classes

Next Post

I’m exploring NoSQL, specially MongoDB. In a non-public project, my customer is using MongoDB, and I’m writing an in-memory alternative, an extension of my open source project Memolap. I like to implement in-memory storage, so I decided to write a MongoDB-like in C#, work in progress:

https://github.com/ajlopez/SharpMongo

As usual, it’s been written using TDD workflow:

https://github.com/ajlopez/SharpMongo/commits/master

I’m implementing the same ideas in JavaScript/Node.js, check:

https://github.com/ajlopez/SimpleMongo

The current status of SharpMongo hasSi ven el estado actual de SharpMongo, tiene:

– Class project SharpMongo.Core
– Test project SharpMongo.Core.Tests
– Class project SharpMongo.Language, where I’m implementing a simple language for a console program
– Test project SharpMongo.Language.Tests
– And the console program SharpMongo.Console

There are some base classes:

Engine has a list of DocumentBase. A DocumentBas has Collections. The documents and dynamic objects:

A Collection contains DynamicDocuments. A DynamicDocument is a DynamicObject (a key-value dictionary) but with an additional property Id.

I have already implemented the Collection methods:

– Insert
– Find (with query and projection)
– Remove (with query)
– Save (with and without Id)
– Update

And the console project has many implemented commands. Next steps:

– Operadores en Find
– Count
– Nested DynamicObjects and arrays in a DynamicObject
– Pretty print in console program

Then, I should manage concurrency, or at least, serialize the updates (execute them one by one). I could add:

– Server that receives line commands via TCP, with plain JSON commands to be executed, and returning results in JSON

– Clients in C#, JavaScript, PHP?

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez