Can I copy a collection in mongoDB from one database to another by copying the db files directly? I tried using cloneCollection http://docs.mongodb.org/manual/reference/command/cloneCollection/ , but clonecollection takes a lot of time in case of big collection because it starts indexing the data.

My use case :

Machine 1 : only one collection with huge data (lets say collection x) Machine 2 : more than one collection. (lets say collection y,z)

I need to copy collection x from machine 1 to machine 2 , so that machine 2 has all the collections (x,y,z) . It should also have all the indexes intact.
You can copy an entire database across in this manner, by copying the files to a new instance, but not collections.  You also cannot simply copy the database files from database foo and alter the filenames at the filesystem level (to bar.0, bar.1 etc.) to avoid namespace collisions, the name must remain the same.

If you wish to move a single collection (or any subset of collections) rather than a whole database then you will have to use the command you mentioned or use mongodump/mongorestore to do the migration.  However, any per-collection method will require rebuilding the indexes from scratch - you only get them in place if you can copy the data files (i.e. move the entire database).

If the other collections are relatively small, you could look at copying them elsewhere,  out of the current database, leaving just the large collection you wish to move.  You can then copy the entire database, and move the database files as mentioned.