# of databases: In MongoDB version 2.2 (the next stable release) there
is database-level locking (currently there's a global write lock),
which may be a reason to create multiple databases.
# of shards: This question depends upon your use case, and the metrics
of your system are necessary to provide specific advice. You need to
consider expected write volume as well as data size. If your data
fits in RAM, you'll be able to handle more inserts per second than if
you're forced to go to disk. It's probably a good idea to limit the
data on a single node to 70% of available disk space (filling the disk
to 100% should be avoided at all costs).
# of replicas: 3 nodes in a replica set is recommended for data
durability. If you expect a high number of reads (much greater than
writes), additional replicas will help to spread the load. Additional
replica members will increase fault tolerance, which may be important
for your application. In addition, you may find it beneficial to have
a single replica lag behind the rest as a way to jump back in time
(if, for example, a bug in your application corrupts the data on your
primary).