Uploaded image for project: 'Mongoid'
  1. Mongoid
  2. MONGOID-3276

#pluck on empty has_and_belongs_to_many relation still executes query

    • Type: Icon: Task Task
    • Resolution: Done
    • 12_01_17
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      class Base
        include Mongoid::Document
        has_and_belongs_to_many :relateds, inverse_of: nil
      end
      
      class Related
        include Mongoid::Document
      end
      
      base1 = Base.create
      base1.relateds.pluck(:id)
      

      Given base1.related_ids == [], I would not expect base1.relateds.pluck(:id) to result in a database query. Unfortunately, it does:

      > MOPED: 127.0.0.1:27017 QUERY database=mongoid_tests collection=relateds selector={"$and"=>[{"_id"=>{"$in"=>[]}}]} flags=[] limit=0 skip=0 batch_size=nil fields=

      {"_id"=>1}

      (0.4566ms)

            Assignee:
            durran Durran Jordan
            Reporter:
            niels Niels Ganser
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: