"codeName": "NamespaceNotFound", когда reIndex () mongodb - PullRequest
0 голосов
/ 30 марта 2019

В 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

Похоже, я должен использовать '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)
...