基于数组大小的 Mongoid 排序模型在其他模型 (has_one) 关系中

Mongoid sort Model based on array size which is in other Model (has_one) relation

我有 Postactivity 模型,它有 post_id 作为 Post 模型(has_one 关系)的外键,这个 Postactivity 模型有喜欢数组。

如何按 likesPost 模型进行排序?

class Post
  has_one :postactivity, foreign_key: :post_activity_id, class_name:"PostActivity"
end

class PostActivity
  field :likes, type: Array  
  belongs_to :post, foreign_key: :post_id, class_name: "Post"
end
class PostActivity
  field :likes, type: Array
  field :likes_count, type: Integer, default: 0 
  belongs_to :post, foreign_key: :post_id, class_name: "Post"

  before_save do
    self.likes_count = lies.size
  end
end

现在您可以按 likes_count 字段对 PostActivity 模型进行排序。

PostActivity.order_by(:likes_count => :desc)

您将对 PostActivity 个实例进行排序。如果您需要 post,可以致电获取:

PostActivity.order_by(:likes_count => :desc).first.post

帖子数=Array.new<br> PostActivity.order_by(:likes_count => :desc).每做 |pa|<br> 帖子 << pa.post<br> 结束 这对我有用