MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoide Reihenfolge nach Länge des Arrays

Mongo-Dokumentation sagt :

Wir können also nicht mit Mongos $size bestellen .

Sie können Ihre Aufgabe lösen, indem Sie ein neues Feld hinzufügen, das die Array-Größe speichert.

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

posts sortieren nach likes_size :

Post.order_by(likes_size: :desc)