gpt4 book ai didi

mongodb - 在 Mongoid 3 中,我可以构建一个 Queryable 然后将它传递给 where 方法吗?

转载 作者:可可西里 更新时间:2023-11-01 10:44:29 25 4
gpt4 key购买 nike

Origin 之间的文档和 Mongoid不太清楚如何使用 Origin::Queryable 对象。我可以构建一个 Origin::Queryable 对象,然后将它传递给 ModelName.where 方法吗?似乎我不能不这样做,但另一方面,这似乎是一件完全明智的事情。我可以想象这样一种情况,我基于某种逻辑构建一个 Queryable,然后将其传递给模型的 where 子句。这可能吗,我只是做得不对?

这就是我的想象:

class Criteria
include Origin::Queryable
end

criteria = Criteria.new
criteria.where(category: 'vacuum').ne(dept: 'home')
vacuums = Product.where(criteria)

这就是我认为它会起作用的方式,但事实并非如此。构建 Criteria 对象后如何处理它?

最佳答案

所以它是这样工作的:

c = Criteria.new
c = c.where(category: 'a').ne(dept: 'home')

然后你有了你的标准 c ,现在你就使用它,如果你使用的是 10gen 驱动程序,你可以这样使用:

collection.find(c.selector, c.options)

或使用助力车:

session[:collection].find(c.selector).select(c.options.fields)

这应该可行,只是做了一些本地测试,对我来说没问题。

关于mongodb - 在 Mongoid 3 中,我可以构建一个 Queryable 然后将它传递给 where 方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14012761/

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