Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MongoDB和Node.js中,查询特定值而不是整个文档对速度有很大影响吗?_Node.js_Mongodb - Fatal编程技术网

在MongoDB和Node.js中,查询特定值而不是整个文档对速度有很大影响吗?

在MongoDB和Node.js中,查询特定值而不是整个文档对速度有很大影响吗?,node.js,mongodb,Node.js,Mongodb,例如,当我只需要用户的特定值时,我应该使用特定调用,还是可以检索用户的整个文档?谢谢。这个问题的答案相当主观,取决于各种因素,如: MongoDB集合中文档的平均大小 网络速度和正常带宽使用参数 数据库查询的服务器方法的结构 如果您的文档相当大,那么完全获取它将导致不必要的网络开销——与仅获取所需密钥相比。如果你不小心,这会显著影响你的应用程序性能 根据您的MongoDB驱动程序,您可以使用投影参数来选择所需的字段。e、 g database.collection('user').findO

例如,当我只需要用户的特定值时,我应该使用特定调用,还是可以检索用户的整个文档?谢谢。

这个问题的答案相当主观,取决于各种因素,如:

  • MongoDB集合中文档的平均大小
  • 网络速度和正常带宽使用参数
  • 数据库查询的服务器方法的结构
如果您的文档相当大,那么完全获取它将导致不必要的网络开销——与仅获取所需密钥相比。如果你不小心,这会显著影响你的应用程序性能

根据您的MongoDB驱动程序,您可以使用投影参数来选择所需的字段。e、 g

database.collection('user').findOne({ _id: 'someid' }, { _id: 0, username: 1 }, 
  function(err, res) {
    if(err) return console.log(err);
    callback(res);
  });

这将只返回
用户的
用户名
,并相应减少网络开销。

这个问题的答案相当主观,取决于各种因素,如:

  • MongoDB集合中文档的平均大小
  • 网络速度和正常带宽使用参数
  • 数据库查询的服务器方法的结构
如果您的文档相当大,那么完全获取它将导致不必要的网络开销——与仅获取所需密钥相比。如果你不小心,这会显著影响你的应用程序性能

根据您的MongoDB驱动程序,您可以使用投影参数来选择所需的字段。e、 g

database.collection('user').findOne({ _id: 'someid' }, { _id: 0, username: 1 }, 
  function(err, res) {
    if(err) return console.log(err);
    callback(res);
  });
这将只返回
用户的
用户名
,并相应减少网络开销