Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Ruby on rails 使用Mongoid,如果我们修改一个项目,它会拉出一大块数据并保存一大块数据吗?_Ruby On Rails_Mongodb_Mongoid - Fatal编程技术网

Ruby on rails 使用Mongoid,如果我们修改一个项目,它会拉出一大块数据并保存一大块数据吗?

Ruby on rails 使用Mongoid,如果我们修改一个项目,它会拉出一大块数据并保存一大块数据吗?,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,假设我们有一些使用Mongoid的东西: data: 'products': "2010-09-07": { pageviews: 123 timeOnPage: 1823 } "2010-09-08": { pageviews: 138 timeOnPage: 2607 } ... 因此,2、3年后,将有700或1000个日期映射到一个散列。如果我们修改1个数字,是否需要将整个大对象读入内存,进行更改

假设我们有一些使用Mongoid的东西:

data: 
  'products':
    "2010-09-07":
      { pageviews: 123
        timeOnPage: 1823 }
    "2010-09-08":
      { pageviews: 138
        timeOnPage: 2607 } 
      ...
因此,2、3年后,将有700或1000个日期映射到一个散列。如果我们修改1个数字,是否需要将整个大对象读入内存,进行更改,然后将大对象写回磁盘?或者Mongoid知道如何去那个特定的位置更改1号吗

我想如果它是为了读取一个数字,它不需要读取RAM中的整个结构?

对这两个都是

有关只读选择字段,请参见此列表中的#3:

有关递增计数器的典型分析用例,请参阅:

这种文档结构似乎不太正常。为什么不让每一天都成为自己的文档呢?然后,您可以轻松地让Mongo对几天进行操作,例如查看给定日期范围内的页面浏览量。至少有很多其他的分析软件包是这样做的。