3

こんにちは、クエリを試していますが、奇妙な結果が得られます。where句が追加されたフィールドが存在しないオブジェクトのリストを取得しようとしています。

ステップ 1 where 句:

ContentMirror.where(source: 'some_source').count

このクエリは 9984 レコードを返します。 たとえば、次some_sourceのようなフィールド呼び出しがvid_emded_objあります。nil

ContentMirror.find('50fff286781200986e000ae3')
=> #<ContentMirror _id: 50fff286781200986e000ae3, _type: nil, created_at: 2012-12-15 13:12:22 UTC, updated_at: 2013-01-29 12:10:23 UTC, deleted_at: nil, title: "Introduction to Polynomials", vid_emded_obj: nil, media_type: "video", source: "some_source", thumbnail_url: nil, md5: "459173975a7fb145b3ca8b99e1c2ae78"> 

したがって、これを行うと少なくとも1のカウントが返されることを期待していました:

ContentMirror.where(source: 'some_source').exists(vid_emded_obj: false).count
=> 0

原因が解りません...

4

1 に答える 1

0

プロパティが存在するかどうかを確認し、そのプロパティの値が空の場合は true を返します。確認するためにドキュメントを探しに行きます:)

編集:

したがって、ドキュメントにはexists(...)については言及されていません。のみが存在しますか?基準に適用できるメソッド。

やるべきだと思います(疑似コード、試していません)

ContentMirror.count(vid_embed_obj:nil, source: 'some_source')

また

ContentMirror.where(vid_embed_obj:nil, source: 'some_source').count

または再び

ContentMirror.excludes(vid_embed_obj:nil).where(source: 'some_source').count
于 2013-01-30T11:59:18.870 に答える