2010-05-07 19:33:27 +00:00
|
|
|
# encoding: UTF-8
|
|
|
|
|
2010-05-05 15:07:52 +00:00
|
|
|
# --
|
|
|
|
# Copyright (C) 2008-2010 10gen Inc.
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
# ++
|
|
|
|
|
|
|
|
module Mongo
|
|
|
|
module GridExt
|
|
|
|
module InstanceMethods
|
|
|
|
|
|
|
|
# Check the existence of a file matching the given query selector.
|
|
|
|
#
|
|
|
|
# Note that this method can be used with both the Grid and GridFileSystem classes. Also
|
|
|
|
# keep in mind that if you're going to be performing lots of existence checks, you should
|
|
|
|
# keep an instance of Grid or GridFileSystem handy rather than instantiating for each existence
|
|
|
|
# check. Alternatively, simply keep a reference to the proper files collection and query that
|
|
|
|
# as needed. That's exactly how this methods works.
|
|
|
|
#
|
|
|
|
# @param [Hash] selector a query selector.
|
|
|
|
#
|
|
|
|
# @example
|
|
|
|
#
|
|
|
|
# # Check for the existence of a given filename
|
|
|
|
# @grid = GridFileSystem.new(@db)
|
|
|
|
# @grid.exist?(:filename => 'foo.txt')
|
|
|
|
#
|
|
|
|
# # Check for existence filename and content type
|
|
|
|
# @grid = GridFileSystem.new(@db)
|
|
|
|
# @grid.exist?(:filename => 'foo.txt', :content_type => 'image/jpg')
|
|
|
|
#
|
|
|
|
# # Check for existence by _id
|
|
|
|
# @grid = Grid.new(@db)
|
|
|
|
# @grid.exist?(:_id => BSON::ObjectID.from_string('4bddcd24beffd95a7db9b8c8'))
|
|
|
|
#
|
|
|
|
# # Check for existence by an arbitrary attribute.
|
|
|
|
# @grid = Grid.new(@db)
|
|
|
|
# @grid.exist?(:tags => {'$in' => ['nature', 'zen', 'photography']})
|
|
|
|
#
|
|
|
|
# @return [nil, Hash] either nil for the file's metadata as a hash.
|
|
|
|
def exist?(selector)
|
|
|
|
@files.find_one(selector)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|