上限收集mongodb

时间:2011-01-11 08:24:24

标签: ruby mongodb

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

我需要在上限集合中插入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个文档。

1 个答案:

答案 0 :(得分:2)

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

试试这个:

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

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