我遇到了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个文档。
答案 0 :(得分:2)
当您根据对象数量限制集合时,您还必须根据大小限制它 - 我想知道ruby驱动程序发送的大小。
试试这个:
coll = db.create_collection(“test”,:capped => true,:size => 100000,:max => 20)
然后将大小调整为适合您的大小(以字节为单位)。