Мне нужно запустить коллекцию на Mongoid, но в этой коллекции нет модели, поэтому я не могу ее использовать: Project.collection.map_reduce(..., :query => scoped.selector)
Кто-нибудь знает, как я могу это сделать? СпасибоИспользуйте коллекцию на mongoid, которая не имеет модели
0
A
ответ
1
Вот ответ/пример, который работает для Mongoid 3.1.5/Moped 1.5.1, надеюсь, что это поможет. Пожалуйста, ответьте на вашу информацию о версии, если хотите что-то более конкретное для вашей среды. Обратите внимание, что, поскольку у вас нет модели Mongoid, вы теряете возможности уровня ODM и должны опускаться до уровня драйвера Moped.
тест/блок/session_test.rb
require 'test_helper'
require 'pp'
class SessionTest < ActiveSupport::TestCase
def setup
@session = Mongoid.default_session
@collection_name = 'project'
@collection = @session[@collection_name]
@collection.drop
end
test "collection map-reduce without model" do
puts "\nMongoid::VERSION:#{Mongoid::VERSION}\nMoped::VERSION:#{Moped::VERSION}"
docs = [
{'name' => 'Charlie', 'gender' => 'M', 'age' => 11},
{'name' => 'Lucy', 'gender' => 'F', 'age' => 13},
{'name' => 'Sally', 'gender' => 'F', 'age' => 15},
{'name' => 'Linus', 'gender' => 'M', 'age' => 11},
{'name' => 'Snoopy'},
]
@collection.insert(docs)
assert_equal docs.size, @collection.find.to_a.size
pp @session.command(
:mapReduce => @collection_name,
:map => 'function(){ emit(this.gender, this.age); }',
:reduce => 'function(key, values){ return Array.sum(values)/values.length; }',
:out => { :inline => 1 },
:query => { 'age' => { '$exists' => true } }
)['results']
end
end
$ рейка тест
Run options:
# Running tests:
[1/1] SessionTest#test_collection_map-reduce_without_model
Mongoid::VERSION:3.1.5
Moped::VERSION:1.5.1
[{"_id"=>"F", "value"=>14.0}, {"_id"=>"M", "value"=>11.0}]
Finished tests in 0.111151s, 8.9968 tests/s, 8.9968 assertions/s.
1 tests, 1 assertions, 0 failures, 0 errors, 0 skips
Смежные вопросы
- 1. Запрос MongoID для коллекции, которая ссылается на коллекцию, которая ссылается на коллекцию
- 2. Как создать ViewModel для модели, которая имеет коллекцию
- 3. Mongoid создать пустую коллекцию
- 4. Mongoid: модель, которая BELONGS_TO некоторые модели не обновляет
- 5. Mongoid, Дети-модели не создают
- 6. Backbone.js - Как создать коллекцию, которая имеет связываемые свойства
- 7. Попытка фильтровать коллекцию с использованием LINQ, где коллекция имеет коллекцию, которая также имеет коллекцию с свойством, которое является нулевым
- 8. Automapper: Преобразование модели, которая имеет несколько конструкторов
- 9. Задачи Mongoid не возвращают ничего на новые поля модели
- 10. Как переиндексировать коллекцию с помощью Mongoid?
- 11. Rails принадлежит_и ассоциации на имя модели, которая имеет знак подчеркивания
- 12. Как класть элементы в упорядоченную коллекцию, которая имеет смысл графически?
- 13. Emberjs Model Associations. Вызов модели, которая имеет много другой модели
- 14. извлекать данные из таблицы, которая не имеет модели cakephp
- 15. GLM-матрица, вызывающая матрицу модели, которая не имеет эффекта
- 16. Табличка перевода семян, которая не имеет модели, рельсы app
- 17. не может преобразовать Fixnum в строку на Mongoid модели сохранения
- 18. Mongoid, агрегатные модели по названию и номеру
- 19. Рельсы Mongoid три-модели отношений
- 20. Атрибут модели содержит коллекцию объекта
- 21. Выбрать запрос на модели возвращает пустую коллекцию
- 22. Mongodb применяет изменения модели, не отбрасывая коллекцию
- 23. Используйте LIKE/regex с переменной в mongoid
- 24. Используйте перечисление с функцией, которая имеет параметр среза
- 25. Модель, которая содержит другие модели
- 26. Имеет много через на Namespaced модели
- 27. Модели не толкнула в коллекцию backbonejs
- 28. Добавление модели в коллекцию не работает
- 29. Создайте коллекцию, которая включает себя
- 30. Mongoid создания текстового индекса на всех текстовых полей на модели
Какие Mongoid версию вы используете? – rubish