5

Mongoid.master.collection()コレクションが存在しなくてもコレクションを返すので、使用できます

coll = Mongoid.master.collection('analyticsCachedResult')
if coll.count == 0
  # [...]
end

空のコレクションかどうかをテストします。別の方法は、ループスルーすることです

Mongoid.master.collections.each do |c|
  return c if c.name == 'analyticsCachedResult'
end
return nil

しかし、それが存在するかどうかを検出する簡単な方法はありますか?

4

2 に答える 2

8

Mongoid を介してそれを行う方法はわかりませんが、一般的にはsystem.namespacesコレクションに対してクエリを実行できます{name : "dbname.analyticsCachedResult"}

于 2010-09-23T22:20:27.157 に答える
1

mongo ruby​​ドライバーを使用して、DBクラスを拡張しました。

class Mongo::DB
  def collection_exists?(collection_name)
    x = "#{self.name}.#{collection_name}" # e.g., "redbike_db.clients"
    nil != self['system.namespaces'].find_one({'name' => x})
  end
end
于 2013-02-22T19:49:08.210 に答える