Разреженный индекс можно использовать только при фильтрации по created_at: {$exists: true}
.
Причина в том, что все остальные записи не являются частью индекса (но они все еще должны появляться в результате - возможно, в конце).
Может быть, вам не нужно делать индекс разреженным (что имеет смысл только тогда, когда большинство записей не имеют поля - в противном случае вы все равно не сэкономите много места в хранилище индекса)? created_at
звучит так, как если бы большинство записей имело это.
Добавлен разреженный индекс в созданный_каталог, поскольку это обязательное поле.
blockquote>На самом деле, все наоборот: редкий индекс требуется только тогда, когда поле является необязательным (и довольно редким).
Если необходимо получить доступ к подклассу от суперкласса затем существует хороший шанс, что модель повреждается (т.е. это должен быть один класс).
Тем не менее существует несколько очевидных решений:
1) просто создайте файл, который требует файлов нечто:
all_foos.rb:
require "foo.rb"
require "foo_sub.rb"
и удалите требование от foo.rb и foo_sub.rb.
2) удалите требование от foo.rb
3) удалите требование от foo_sub.rb и поместите требование в foo.rb после определения класса.
Ruby не является C++, он не будет жаловаться на FooSub. SOME_CONSTANT, пока Вы не называете Foo#foo () ;)
Еще один достойный вариант - использовать функцию автозагрузки Ruby.
Она работает следующим образом:
module MyModule
autoload :Class1, File.join(File.dirname(__FILE__), *%w[my_module class1.rb])
autoload :Class2, File.join(File.dirname(__FILE__), *%w[my_module class2.rb])
# Code for MyModule here
end
и хорошо описана здесь:
http: //talklikeaduck.denhaven2. com / 2009/04/06 / all-that-you-might-require