gpt4 book ai didi

mongodb - 使用 MongoMapper 范围查询关联集合?

转载 作者:可可西里 更新时间:2023-11-01 09:16:03 25 4
gpt4 key购买 nike

class Comment
include MongoMapper::Document

scope :by_rating, lambda { |minimum| where(:rating.gte => minimum) }

key :rating
belongs_to :user
end

class User
include MongoMapper::Document

many :comments
end


User.first.comments.by_rating(3)

最后一行的查询实际上做了什么? MongoMapper 是否足够智能以仅执行一个具有两个 WHERE 条件(user_id 和最低评级)的查询?

最佳答案

MongoDB 无法做到这一点。这需要一个它不能做的连接。它通过具有非常可扩展的读取性能和更轻量级的查询克服了这一限制。这不是问题。您可以通过在初始化程序中设置记录器(搜索 MongoMapper.connection)来查看此行为:

 # Change as appropriate
MongoMapper.connection = Mongo::Connection.new(
'127.0.0.1', 27017, :logger => Logger.new(STDOUT))

然后启动您的 Rails 控制台,您将看到两个查询:

 User.first.comments
MONGODB test['users'].find({}).limit(-1)
MONGODB test['comments'].find(
{:user_id=>BSON::ObjectId('4e8ddd6bf2c31e7001000001')})

关于mongodb - 使用 MongoMapper 范围查询关联集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3949143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com