我目前有一个Comment
MongoDB表,我强制remote_id
字段的唯一性。
The MongoDB documentation is here
我现在处于remote_id
属性对于拥有该评论的用户而言应该唯一的情况。换句话说:
User
彼得只能有1 Comment
remote_id
123 User
约翰只能有1 Comment
remote_id
123 Users
彼得和约翰都可以有1 Comment
remote_id
123 < / LI>
如何组合实施2个字段的唯一性?
我的表在我的Ruby on Rails应用程序的模型文件中定义,它目前看起来像这样:
class Comment
include Mongoid::Document
include Mongoid::Timestamps
field :datetime, type: Time
field :remote_id, type: String
index({ remote_id: 1 }, { unique: true })
index({ user_id: 1 }, { background: true })
belongs_to :user, :inverse_of => :comments
end
答案 0 :(得分:1)
您可以将以下行添加到模型中
validates :remote_id, uniqueness: { scope: :user }
也是为了完整性: 如果您想验证超过2个字段的唯一性
(例如,如果您希望评论对每个帖子每个用户唯一),请使用以下
validates :remote_id, uniqueness: { scope: [:user, :post] }
假设评论具有post
字段或关系。