A simple question, let's have this query : user_result = db.users.find({"_id": "anyID"})
Is it more performant than user_result = db.users.find({"_id": "anyID"}).limit(1) if i know that this query should return only one result.
CodePudding user response:
If you compare the results if .explain() you will find that the winning plan in both cases is IDHACK.
.limit(1) will not provide any perf gains.
db.users.find({"_id": "anyID"}).limit(1).explain()
db.users.find({"_id": "anyID"}).explain()
Similar question on MongoDB WinningPlan IDHACK
Also, you probably want to do a findOne() in this case.
db.users.findOne({"_id": "anyID"})
Keep in mind that the return value of findOne() differs from that of find(). FindOne returns the document, whereas Find returns a cursor.
