
Nodejs and MongoDB, A Beginner's Approach - ksetyadi
http://blog.ksetyadi.com/2011/10/nodejs-and-mongodb-a-beginners-approach/
======
qF
This guide really shows what I think is a big problem with a lot of Node
guides, they don't go beyond the first 5 minutes.

There are a ton of guides on how to set up a webserver in 20 lines, but hardly
any on how to (properly) handle a lot of async callbacks and requests etc.

~~~
ksetyadi
It's hard to cover many aspects of it when we talked about getting our feet
wet. I try to include as few terms as possible that potentially confused
people to start coding Nodejs-MongoDB. It's probably a big problem when you
try to get your feet wet on the first day you learn about swimming just by
jumping all over the pool. But then, hopefully, we learn.

Thanks for your opinion :)

~~~
hello_moto
I'm not sure that both Node.js and MongoDB appeal beginners.

These 2 tools are reserved for people who exactly know what they want out of
their tools, not for someone who just jumped in to "web development" and
wanted to use buzzword compliant tools.

Sorry for being such a snippy on Monday morning but I'm hoping people around
me would become better at fundamental as opposed to combining tools w/o
knowing what they're good for.

~~~
mcantelon
Why is MongoDB unsuitable for beginners? If beginners have a handle on
Javascript it saves them from having to learn SQL and know any MySQL admin.

~~~
hello_moto
... and this is a good thing? as opposed to learn proper RDBMS first and learn
the lingo of NoSQL (document vs key-value vs column-oriented)?

But I digress, people have different experience. I've seen projects got burned
many times by beginners who have lacked of understanding of RDBMS and you may
have entirely different experience where your project shines because of
MongoDB.

------
Srirangan
To be honest, a good attempt by the author but I wouldn't recommend this to a
beginner. Why? I don't recommend the use of the native driver - you end up
with needlessly complex code.

I don't want to criticize the authors work. He's done a pretty good and
thorough job. Hopefully I'll pen down an easier guide later tonight.

~~~
mcantelon
Yeah, I'd say many folks will probably end up wanting to use something like
Mongoose to abstract the nitty-gritty details of Node/MongoDB interaction, but
knowing how to use the underlying library (and node-mongodb-native is the most
popular of them by far) is healthy for beginners.

------
stottc
There's something incredibly natural about node & mongo together.

~~~
dextorious
Actually it's more like: hey, let's take two tools that ought to be used with
utmost caution by people who know what they're doing and why they need them,
and present them as the best thing since sliced bread.

The huge majority of uses for either would be better served without them.

~~~
trafficlight
Why such an elitest attitude? We all have to start somewhere.

~~~
dextorious
What elitist attitude? Agree, we all have to start somewhere, and the basics
--a relational DB and a synchronous framework are fine somewheres to start
from.

Now, when (and if) you know enough about those, by all means move on to NoSQL
etc.

Note, though, that I'm taking about people using it in production and not
knowing what the compromises are --the "Mongo DB is webscale" and "node.js is
damn fast" people.

I have no problem with people that are just using it to play/experiment with
(though, they too would have to understand the compromises eventually).

~~~
trafficlight
What does it matter to you if they use it in production? It's not like your
house is going to burn down.

~~~
dextorious
Huh? Things should only matter to us when they affect us personally? Caring
for the state of technology and development in general is prohibited?

------
olegp
On a related note, I'm working on a synchronous narwhal-mongodb compatible
driver that would work with common-node (<http://olegp.github.com/common-
node/>), Would anyone be interested in helping out?

------
senko
I'm both Node and MongoDB user and like them, but this can get really messy
when there's a chain of callbacks involved, eg when you need a sequence of
results but want to do it in a asynchronous fashion.

~~~
latch
Is that specific to MongoDB on node, or is that just generally true of node.js
code though?

~~~
senko
It's generally true for Node when you have a lot of chained I/O. You can
somewhat avoid it using events (so you set up event listeners instead of just
chaining callbacks endlessly). So far I haven't seen any MongoDB module for
Node taking advantage of those (haven't looked a lot yet, though).

~~~
viscanti
I've used EventEmitter on a couple toy projects, but I've always assumed
that's adding a bit more overhead to everything than just using callbacks.
It's easier to read though and probably easier for someone else to figure out
in the future. I've played with node.js libraries that have callbacks strung
out over several files, so tracking down exactly where some behavior is
happening isn't easy.

There are a few examples out there about using events/listeners, but I think
there's room for a really good one.

------
tista
Async behaviors would be a great read up for your next article :D

------
latch
site seems to be having load issues.

Mirror: <https://gist.github.com/1327266>

