0

在我的代码中,我有一个用户类:

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:,但它似乎不适用于引用。

4

1 回答 1

3

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})

于 2013-10-10T08:08:27.883 回答