如何使用Mongoid判断MongoDB中是否存在集合?

nop*_*ole 5 collections mongodb mongoid

由于Mongoid.master.collection()回报率即使集合不存在的集合,我们可以使用

coll = Mongoid.master.collection('analyticsCachedResult')
if coll.count == 0
  # [...]
end
Run Code Online (Sandbox Code Playgroud)

测试它是否为空集合.另一种方法是循环

Mongoid.master.collections.each do |c|
  return c if c.name == 'analyticsCachedResult'
end
return nil
Run Code Online (Sandbox Code Playgroud)

但有没有更简单的方法来检测它是否存在?

kri*_*ina 8

不知道怎么做通过Mongoid,但一般来说你可以查询system.namespaces集合{name : "dbname.analyticsCachedResult"}.