db.test.find_one(ObjectId('4f3dd96d1453373bcb000000'))
或完全不同的东西?我知道_id列是自动索引的,我希望能够充分利用这种效率.
谢谢!
解决方法:
是的,你的方法是正确的.
由于您在询问效率,请记住,在优化读取操作以提高性能时,您可能只想阅读所需的属性.如果文档的某些属性很大,那么这可以显着降低IO成本(将数据从服务器传输到客户端).例如,如果您的文档有20个属性,但您只使用其中的5个属性,则不要通过网络拉动其他15个属性.在pymongo中,您可以使用collection.find函数的可选fields参数执行此操作.显然,您需要在此处平衡性能与代码可维护性,因为列出属性会增加维护成本.
the official docs中提供了更多优化建议.他们的列表包括“优化#3:仅选择相关字段”,这正是我上面提到的.