Collections 如何使用Mongoid判断MongoDB中是否存在集合?
由于Collections 如何使用Mongoid判断MongoDB中是否存在集合?,collections,mongodb,mongoid,Collections,Mongodb,Mongoid,由于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'
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
但是有没有更简单的方法来检测它是否存在呢?不知道如何通过Mongoid来实现,但一般来说,您可以查询system.namespaces集合中的
{name:“dbname.analyticsCachedResult”}
使用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
啊,谢谢你的提示。这行代码也很有用:
Mongoid.master.collections.map{{c{c.name}.include?“analyticsCachedResult'
尽管如果Mongoid有这样一个调用可能会更好。