Javascript 如何优化mongo或sql到客户端读取的数据结构

Javascript 如何优化mongo或sql到客户端读取的数据结构,javascript,python,sql,mongodb,Javascript,Python,Sql,Mongodb,我试图在这里优化阅读,虽然我的问题可能与技术无关,但我的案例使用mongodb作为数据库 我有一个文件对象数组,如,以便从/api/files端点获取: [{id: 1, name: 'foo', size: 500}, {id: 2, name: 'bar', size: 600}, {id: 3, name: 'baz', size: 700}] 我将在应用程序加载时检索 然后,我将能够选择这些文件中的一个,以表单的形式向其中添加元数据 在这里,我可以选择: 使用/api/files/1(

我试图在这里优化阅读,虽然我的问题可能与技术无关,但我的案例使用mongodb作为数据库

我有一个文件对象数组,如,以便从/api/files端点获取:

[{id: 1, name: 'foo', size: 500},
{id: 2, name: 'bar', size: 600},
{id: 3, name: 'baz', size: 700}]
我将在应用程序加载时检索

然后,我将能够选择这些文件中的一个,以表单的形式向其中添加元数据

在这里,我可以选择:

  • 使用/api/files/1(:id),这将花费一次网络往返

  • 我可以通过运行
    files.find(file=>file.id==1)
    来尝试查找要更改的文件信息,这可能不是超级性能

  • 改变我在mongo中将“文件”数据完全存储为嵌套对象而不是像这样的数组的方式

  • 这意味着我可能会失去使用mongodb的findOne方法或其SQL等效方法的能力


    我想知道这些选项中哪一个对读取性能最好。谢谢

    为什么找不到性能?据推测,mongodb将为您提供一个免费的id索引,这在大多数db技术中只是一个索引搜索。@Brenden,对后端和相关mongo检索(选项1)的额外调用将涉及延迟惩罚,而对缓存列表的本地搜索将取消索引(选项2)。我想看看哪一个是两个恶魔中的较小者。你的意思是说你提前找到了所有的东西,并且它存在于客户端的某个地方以避免往返呼叫?是的。确切地我会调出所有的文件,就像在一个目录上运行ls来显示目录的内容,这些内容会在客户端本地缓存。1) 优化服务器上的读取2)最小化客户端上的请求。对于1,假设您的应用程序在一台机器上运行,只需将数据缓存在内存中。在进行写入操作时,您必须逐出此数据。2) 只要总体数据长度合理,就可以预加载整个集合。如果数据是稳定的,您可能希望将其保存到本地存储中一段时间。
    {
    1: {id: 1, name: 'foo', size: 500},
    2: {id: 2, name: 'bar', size: 600},
    3: {id: 3, name: 'baz', size: 700}
    }