ограниченная коллекция mongodb - PullRequest
1 голос
/ 11 января 2011

У меня проблемы с 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.timestimes@pad_string + = ""}, он вставит максимум 3 документа.

1 Ответ

2 голосов
/ 14 января 2011

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

попробуйте это:

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

Затем настройте размер так, чтобы он работал на вас (в байтах).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...