2011-01-11 3 views
1

У меня есть проблемы с mongoDB. В настоящее время я работаю с драйверами Ruby mongodb, и там происходят некоторые странные вещи:capped collection 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 документа максимум.

ответ

2

Когда вы закрываете коллекцию, основанную на количестве объектов, вам также нужно ее закрывать по размеру - интересно, какой размер рубиновый драйвер отправляет.

попробовать это:

Coll = db.create_collection ("тест",: = ограничен> верно,: размер => 100000, макс => 20)

Затем настроить размер, чтобы все, что работает для вас (это в байтах).

+0

thanx много, он работает сейчас – Kuen