我在mongodb
中有一个集合:
> use my_db
switched to db my_db
> db.my_coll.count()
278
我有一个红宝石课:
class MyColl
include MongoMapper::Document
key :fst, Integer
key :sec, Float
end
我打电话的时候:
MongoMapper.database = 'my_db'
MyColl.count
#=> 0
虽然我肯定希望得到与mongo控制台相同的结果。没有错误,没有任何错误。
我在这里缺少什么?
答案 0 :(得分:1)
MongoMapper
' ActiveRecord
约定要求类名对应集合名称:
self.class.name.gsub(/::/, '.').underscore.pluralize == coll_name
也就是说,类MyColl
期望底层集合被命名为my_colls
。尽管数据库中没有这样的集合,MongoMapper
默默地假设用户想要透明地创建此集合。这就是MyColl.count
返回零的原因,而不是抛出异常。
> db.my_coll.renameCollection("my_colls")
会做到这一点。