sql >> Base de Datos >  >> NoSQL >> MongoDB

Orden mongoide por longitud de matriz

La documentación de Mongo dice :

Entonces no podemos ordenar usando el $size de mongo .

Puede resolver su tarea agregando un nuevo campo, que almacenará el tamaño de la matriz.

class Post
  include Mongoid::Document
  field :likes, type: Array, default: []
  field :likes_size, type: Integer

  before_save do
    self.likes_size = likes.size
  end
end

Ordenar posts por likes_size :

Post.order_by(likes_size: :desc)