How do I compare 1000 items every minute over 1 million records in mongodb without pulling all the data?
If you add "_id" to your index {"3":1, "_id":1 } and then projection of {"_id":1, "3":1} to query, you get result directly from index in the memory (if you have enough memory to hold index in the memory). 

Adition, you could use in-memory database engine.