首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mongoid3中,我可以构建Queryable,然后将其传递给where方法吗?

在Mongoid3中,我可以构建Queryable,然后将其传递给where方法吗?
EN

Stack Overflow用户
提问于 2012-12-24 00:50:44
回答 1查看 281关注 0票数 2

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

这就是我所描绘的:

代码语言:javascript
复制
class Criteria
  include Origin::Queryable
end

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

我就是这么想的,但事实并非如此。在我构建了Criteria对象之后,我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-26 02:52:42

所以它是这样工作的:

代码语言:javascript
复制
c = Criteria.new
c = c.where(category: 'a').ne(dept: 'home')

然后你有了你的criteria c,现在你只需要使用它,如果你使用的是10gen驱动程序,你可以像这样使用:

代码语言:javascript
复制
collection.find(c.selector, c.options)

或者使用轻便摩托车:

代码语言:javascript
复制
session[:collection].find(c.selector).select(c.options.fields)

这应该会起作用,只是做了一些本地测试,对我来说很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14012761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档