Драйвер Ruby Mongodb: редактировать коллекцию :: Просмотр фильтра экземпляра - PullRequest
0 голосов
/ 09 октября 2018

Когда я создаю экземпляр Collection :: View с:

client = Mongo::Client.new('mongodb://127.0.0.1:27017/test')

view = client[:users].find( { name: "Sally" } )
=> #<Mongo::Collection::View:0x69824029475340 namespace='test.users' @filter={"name" => "Sally"} @options={}>

Как я могу позже изменить filter хэш этого экземпляра?Это не работает:

view.filter.merge!("age" => 30)
=> #FrozenError: can't modify frozen BSON::Document

1 Ответ

0 голосов
/ 10 октября 2018

Не думаю, что ты можешь..filter - это метод, который принимает аргументы.Это не хеш.
См. примеры , а также поиск код

Однако вы можете сделать что-то вроде:

view = lambda { |hash|  client[:users].find(hash) }

search_params = { name: "Sally" }

view.(search_params)

view.(search_params.merge!({foo: 'bar'})) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...