モデル内のフィールドである配列の長さでモンゴイドモデルをソートする方法。配列の長さでモンゴイダルを並べる
答えて
ドキュメントは、あなたがサイズを使用して[並べ替えができないと言います。
sizeの値を含む新しい列を追加し、並べ替え順に動作する並べ替えを試してください。
はルビーでは、このような配列をソートすることができます
my_array.sort_by(&:my_attr)
それは、配列内の各要素の属性my_attr
によって配列my_array
をソートします。あなたはまた、このようにそれを書くことができ
:まったく同じです
my_array.sort_by{|element| element.my_attr }
、それは各要素のmy_attr
属性でソートされます。この2番目の構文は、各要素のメソッドの結果だけでなく、より複雑なソート条件が必要な場合に使用します。
ドキュメント:http://ruby-doc.org/core-2.3.1/Enumerable.html#method-i-sort_by
モンゴのドキュメントsays:
あなたはサイズの範囲を見つけるために、$サイズを使用することはできません(例:配列の1つの以上の要素を持つ )。範囲をクエリする必要がある場合は、要素を追加するときにインクリメントする余分なサイズのフィールド を作成します。クエリの$ size部分にインデックス を使用することはできませんが、他の クエリ式が含まれている場合は、インデックスを使用してクエリ式のその部分の一致度を で検索できます。
mongoの$size
を使用して注文することはできません。
タスクを解決するには、新しいフィールドを追加します。これは、配列サイズを格納します。
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
likes_size
によって:
Post.order_by(likes_size: :desc)
モデルの内部にあるフィールドとその配列に基づいてコレクションをソートする必要があります。例えばPostはモデル、 "likes"はuser_idの配列であるフィールドです。ですから、likes配列の長さに基づいてPostを並べ替える必要があります。 –
ありがとう、もう少し簡単な質問私は外来キー(has_one関係)としてpost_idを持つモデルであり、このモデルは類似配列を持つPostactivityを持っています。今投稿モデルを並べ替えるにはどうすればいいですか?事前に感謝...あなたの時間を本当に感謝します。 –
@BalajiThiruあなたはすべての詳細で新しい質問を作成してください。私は助けようとします。 –
- 1. 長さの値を含む配列を並べ替える
- 2. 配列の長さに基づいて配列を並べ替える
- 3. numpy配列のnumpy配列を内部配列の長さで並べ替えます
- 4. Javascript長さの不安定さによる配列の並べ替え
- 5. 長さでベクトルの文字列を並べ替える
- 6. Javascript配列の配列を子配列で並べ替える
- 7. 文字と長さで文字列を並べ替える
- 8. ファクタの長さで並べ替え
- 9. 構造体配列の配列を並べ替える[配列]
- 10. 他の配列の値で配列を並べ替える
- 11. オブジェクトの配列でオブジェクトの配列を並べ替える
- 12. 配列をICompareで並べ替える
- 13. 配列をアンダースコアで並べ替える
- 14. 配列をHeapSortで並べ替える
- 15. PHPで配列を並べ替える
- 16. PHPの配列で並べ替える
- 17. 等しくない長さの並べ替えられた配列のマージ
- 18. 配列の配列をstd :: sortで並べ替えるには?
- 19. 配列の並べ替え
- 20. 配列を対応する配列で並べ替える
- 21. 長さで並べ替える前にリストをアルファベット順に並べ替える?
- 22. 長さに基づいて2つの次元配列を文字列で並べ替える方法は?
- 23. NSIndexPathsの配列を並べ替える
- 24. オブジェクトの配列を並べ替える
- 25. 配列のJavaScriptを並べ替える
- 26. オブジェクトの配列を並べ替える
- 27. 配列なしで並べ替える
- 28. javascriptで並べ替える配列
- 29. Javaでの並列配列の並べ替え
- 30. 文字列配列の配列を並べ替えるJava
これはどのようにこの質問に当てはまりますか? OPはMongoDBの内部に配列フィールドを持ち、MongoDBコレクションをその配列の長さでソートする必要があります。 –
モデルの内部にあるフィールドとその配列に基づいてコレクションをソートする必要があります。例えばPostはモデル、 "likes"はuser_idの配列であるフィールドです。ですから、likes配列の長さに基づいてPostを並べ替える必要があります。 @muistooshortはまさに私が望むものです。 –