В mongodb документе сказано не нужно переиндексировать. Я предположил, что это должно работать само по себе. Ну откуда я знаю?
Но я все еще пытался reIndex (), потому что я имел дело с ошибкой из-за превышения памяти! и требуется индекс или увеличение памяти
Какой правильный путь?
в моей модели Rails:
class Mymodel
include Mongoid::Document
include Mongoid::Timestamps
field :title, :type => String
field :completed, :type => Boolean
field :due, :type => String
belongs_to :user, :class_name => "Admin::User"
index({title: 1}, {unique: false, name: "title_index"})
end
Открыть монго в терминале
use admin
switched to db admin
> db.todo.reIndex()
{
"ok" : 0,
"errmsg" : "collection does not exist",
"code" : 26,
"codeName" : "NamespaceNotFound"
}
Также я попытался использовать Robomongo для переиндексации, как показано ниже:
![enter image description here](https://i.stack.imgur.com/PvFdv.png)
Похоже, я должен использовать 'todos', а затем вернуться к Монго
> db.collection('todos').reIndex()
2019-03-30T16:06:34.294-0500 E QUERY [thread1] TypeError: db.collection is not a function :
@(shell):1:1
Так что я не понял.
Не знаю, как это работает. Как проверить / увидеть это.
Что я мог сделать, это посмотреть журналы.
Да, теперь это лучше результат с 15 секунд до 9-12 секунд, который я до сих пор не знаю, почему. Это может быть результатом увеличения памяти до 150 МБ, а не по умолчанию около 30 МБ?
db.runCommand( { getParameter : 1, "internalQueryExecMaxBlockingSortBytes" : 1 } )
{ "internalQueryExecMaxBlockingSortBytes" : 150151432, "ok" : 1 }
Следующие изображения представлены до и после изменения памяти и индексации результатов для 1 миллиона записей, которые пытались использовать datatable с mongodb в рельсах 5
просто для просмотра последней страницы
До:
MONGODB | localhost:27017 | b_development.find | STARTED | {"find"=>"todos", "filter"=>{}, "limit"=>10, "skip"=>1000190, "sort"=>{"title"=>1}, "lsid"=>{"id"=><BSON::Binary:0x70256590361600 type=uuid data=0x7ee20f860cc848c0...>}}
MONGODB | localhost:27017 | b_development.find | SUCCEEDED | 15.440s
Completed 200 OK in 15451ms (Views: 15433.6ms | MongoDB: 15.4ms)
После того, как:
MONGODB | localhost:27017 | b_development.find | STARTED | {"find"=>"todos", "filter"=>{}, "limit"=>10, "skip"=>1000190, "sort"=>{"completed"=>1}, "lsid"=>{"id"=><BSON::Binary:0x70256588724280 type=uuid data=0xe9db0e00a5d34ecb...>}}
MONGODB | localhost:27017 | b_development.find | SUCCEEDED | 9.993s
Completed 200 OK in 10006ms (Views: 9993.0ms | MongoDB: 10.0ms)