Live data from Hacker News

My weekend project: MongoDB implementation in Ruby

github.com

1–10 of 12 posts

Re: My weekend project: MongoDB implementation in Ruby

#5
post #4

Looks great! But the stinger is in the tail : "I think the next thing to add is indexes. Currently everything works via a linear scan of the database."

Thanks. Re: indexes - patches welcome :). I don't expect them to be hard to build though. Since embedded-mongo is in memory, they're just a bunch of hash tables.

Re: My weekend project: MongoDB implementation in Ruby

#6
post #4

Looks great! But the stinger is in the tail : "I think the next thing to add is indexes. Currently everything works via a linear scan of the database."

It depends on what you use it for. Without indexes, it could be used for testing without setting up a local MongoDB server, as long as there aren't too many records.

Re: My weekend project: MongoDB implementation in Ruby

#9
post #5
post #4

Looks great! But the stinger is in the tail : "I think the next thing to add is indexes. Currently everything works via a linear scan of the database."

Thanks. Re: indexes - patches welcome :). I don't expect them to be hard to build though. Since embedded-mongo is in memory, they're just a bunch of hash tables.

In that case, I would think that the indexing stuff (i.e. hash lookups) would be way better than linear already. Cool.

Re: My weekend project: MongoDB implementation in Ruby

#10
While this is a very nifty bit of code, I'd be very careful about using it for unit testing as there is a high likelihood of minor behavior differences verses a real mongod which can cause surprises in production.

Also, for anyone looking to embed MongoDB and who doesn't mind using C++ it is possible and rather easy. In fact some of our unit tests and all of our tools other than the shell already do this. See https://github.com/mongodb/mongo/blob/master/tools/tool.cpp#... for the details. The DBDirectClient class implements the full C++ driver interface but does all operations in-process. The downside is that unlike when using our drivers (which have no licensing impact on your code) when you embed mongodb within your application it becomes bound by AGPL.

PS- That is really impressive for a weekend project! You should get in touch with us at 10gen if you're looking for a new job.

Post reply on HN