让我从我的用例开始。我有两个不同的 mongoid 数据库实例,每个区域都基于类似的模型托管。并且根据用户输入,代码会从我的 rails 应用程序中的各个 mongo 实例中获取结果。我不确定这样做的最佳方法是什么,但是我使用了 Model.with 方法并在 mongoid.yml 中配置了两个客户端。
对于 mongoid <5.0,这很完美。但是,最近我正在升级到 Model.with 现在接受块的 mongoid 6.2,并且我的查询没有产生任何结果。
这是示例代码。
我从下面更改了我的代码(mongoid <5 效果很好)
results = SomeModel.with(client: "region1").where(name: 'John')
到 (mongoid >= 6.2)
results = SomeModel.with(client: "region1") do |mymodel|
mymodel.where(name: 'John')
end
使用新代码,结果为空。不确定我是否做错了什么。但是,如果只需要一条记录,下面的代码可以正常工作:
results = SomeModel.with(client: "region1") do |mymodel|
mymodel.where(name: 'John').first
end
如果我的用例有任何其他想法,我将不胜感激。