Только что начал играть с MongoDB.
irb(main):037:0> @db.insert({"color" => "Blue"})
=> BSON::ObjectId('4f7aaf3a1d41c81634000002')
Теперь я пытаюсь использовать метод find, после использования find_one:
irb(main):039:0> @results = @db.find({"color" => "Blue"})
=> <Mongo::Cursor:0x4340c48 namespace='tutorial.users' @selector={"color"=>"Blue"} @cursor_id=>
Теперь я пытаюсь повторить результаты:
irb(main):040:0> @results.each do |aa|
irb(main):041:1* puts aa["color"]
irb(main):042:1> end
Blue
=> nil
Когда я запускаю его снова, ничего не появляется
irb(main):043:0> @results.each do |aa|
irb(main):044:1* puts aa["color"]
irb(main):045:1> end
=> nil
Возможно ли дважды повторить курсор монго?
Пост выше говорит, что я должен использовать перемотку!метод в классе ruby.
Давайте посмотрим:
irb(main):046:0> @results.rewind!
=> true
irb(main):047:0> @results.each do |aa|
irb(main):048:1* puts aa["color"]
irb(main):049:1> end
Blue
=> nil
Почему курсор подходит только для одного прогона?
Если я строилПриложение rails использует драйвер ruby direct и пробует нумерацию страниц, когда кто-то нажимает кнопку «Назад», ничего не будет работать.
Есть другие варианты, но похоже на взлом.
Я прочиталгде-то на 10-минутном ограничении, но это, кажется, хорошо для одного использования?
Что здесь происходит, и почему я не могу повторить его снова, по крайней мере, под 10-минутным ограничением сервера