2

OriginMongoidの間のドキュメントでは、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オブジェクトをどのように処理しますか?

4

1 に答える 1

1

したがって、次のように機能します。

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

次に、基準があります。cこれを使用するだけです。10genドライバーを使用している場合は、次のように使用できます。

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

またはMopedを使用する:

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

これはうまくいくはずです、ただいくつかのローカルテストをしました、そしてそれは私にとっては大丈夫でした。

于 2012-12-25T18:52:42.420 に答える