Method: MarkLogic::Collection#remove

Defined in:
lib/marklogic/collection.rb

#remove(query = nil, options = {}) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/marklogic/collection.rb', line 88

def remove(query = nil, options = {})
  if query.nil? || (query.is_a?(Hash) && query.empty?)
    drop
  else
    if query.class == Hash
      query = from_criteria(query)
    elsif query.nil?
      query = Queries::AndQuery.new()
    end

    xqy = %Q{cts:search(fn:collection("#{collection}"), #{query.to_xqy}, ("unfiltered")) / xdmp:node-delete(.)}
    response = @database.connection.run_query(xqy, "xquery")
    raise Exception.new("Invalid response: #{response.code.to_i}, #{response.body}") unless response.code.to_i == 200
  end
end