mongodbとmongooseを使ってアプリケーションを開発しています。私は、フィールドを以下ましたコレクションという名前の製品があります。mongodb nodejの2つのフィールドでソートする
{
color:String,
sizes: [{type: String}],
gender: String, //can be women/men/kids
price: {
type: Number, required: true, min: 0
},
likes: {type: Number, default: 0},
views: {type: Number, default: 0},
}
を、私は、サイズLで文書をフィルタリングしても好きにソート降順と価格でソートを昇順実行するために集計を使用したいです。 ここで私が使用しているクエリです:
aggregate([{$match:{sizes:['L']}},{$sort:{price:1,likes:-1}}])
が、私はたったの$の並べ替えオブジェクトの最初のフィールドで文書をソート結果を取得し、それは価格であると彼らが好きで並べ替えられていません。 何が問題なのですか?私はさまざまなフィールドと注文を試みたたびに、同じ結果が得られました。
クレームをサポートするためにサンプルをデータに投稿できますか? 'sort()'のデフォルトの振る舞いは、指定した最初のフィールドでソートし、2つ目のフィールドの最初のフィールドが等しいときに2番目のフィールドを使用してソートします。つまり、ドキュメントは 'likes'によってのみソートされます。if彼らの「価格」は同じです。 –
どのように私は2つのフィールドでドキュメントを並べ替えることができますか?2つ以上のfields.isそこにプラグインやメソッドですか? –