【问题标题】:capped collection mongodb封顶集合mongodb
【发布时间】:2011-01-15 04:23:06
【问题描述】:

我对 mongoDB 有疑问。 目前我正在使用 Ruby mongodb 驱动程序,并且正在发生一些奇怪的事情:

我需要在 capped 集合中插入 20 个文档,但是当我编写以下代码时,它只插入了 3 个文档,我无法了解发生了什么:

coll = db.create_collection("test",:capped => true, :max=>20)
1024.times{@pad_string +=" "}

20.times{coll.insert({
             :HostName    => @hostname,
             :CommandLine => @cmdline,
             :Pid         => "1111",
             :BlockName   => @blockname,
             :ExitCode    => 0,
             :StartTime   => Time.now,
             :EndTime     => Time.utc(2000,"jan",1,00,00,00),
             :StdErr      => @pad_string,
             :Stdout      => @pad_string}
         )}

其实重点是我插入@pad_string 1024 预分配的空间。一旦我在插入 1024.times{@pad_string +=" "} 之前这样做,它最多只插入 3 个文档。

【问题讨论】:

    标签: ruby mongodb


    【解决方案1】:

    当您根据对象数量限制集合时,您还必须根据大小限制集合 - 我想知道 ruby​​ 驱动程序发送的大小是多少。

    试试这个:

    coll = db.create_collection("test",:capped => true, :size=>100000, :max=>20)

    然后将大小调整为适合您的大小(以字节为单位)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多