使用pymongo在MongoDB中通过ObjectId获取值的最有效方法是什么?

db.test.find_one(ObjectId('4f3dd96d1453373bcb000000'))

或完全不同的东西?我知道_id列是自动索引的,我希望能够充分利用这种效率.

谢谢!

解决方法:

是的,你的方法是正确的.

由于您在询问效率,请记住,在优化读取操作以提高性能时,您可能只想阅读所需的属性.如果文档的某些属性很大,那么这可以显着降低IO成本(将数据从服务器传输到客户端).例如,如果您的文档有20个属性,但您只使用其中的5个属性,则不要通过网络拉动其他15个属性.在pymongo中,您可以使用collection.find函数的可选fields参数执行此操作.显然,您需要在此处平衡性能与代码可维护性,因为列出属性会增加维护成本.

the official docs中提供了更多优化建议.他们的列表包括“优化#3:仅选择相关字段”,这正是我上面提到的.

上一篇:python – pymongo:更高效的更新


下一篇:pymongo使用db.find().map