在我的代码中,我有一个用户类:
class User
include Mongoid::Document
has_and_belongs_to_many :person_record_bookmarks, inverse_of: nil, :class_name => "PersonRecord"
end
现在它将在我的文档中生成person_record_bookmarks_ids。这个名字太长了,有没有办法将它作为短名称存储在数据库中?在嵌入文档中,我们可以使用store_as:,但似乎它不适用于引用。
答案 0 :(得分:2)
foreign_key就是你要找的东西
class User
include Mongoid::Document
has_and_belongs_to_many :person_record_bookmarks, inverse_of: nil, :class_name => "PersonRecord", foreign_key :shorter_name
end
那么您的用户将是:
{...shorter_name:[ObjectId("..."),ObjectId("...")]...}
您可以使用user.shorter_name检索id列表或user.person_record_bookmarks以检索所有PersonRecordBookmarks.where({_ id:{$ in:short_name})