2017-07-16 5 views
1

MongoDBのデータをソートしようとしています。私は以下に示すレンタルスキーマを持っていて、 "特集"アイテムを含んでいます。おすすめアイテムがtrueに設定されている場合(ユーザーは最後にこれを行うことができます)、おすすめアイテムをレンタルアイテムの上に表示します。言い換えれば、フィーチャー=真であるmongoデータをトップに並べ替える必要があります。Mongoでソートする

これを行うにはどうすれば私のコードを変更できますか?

は、ここに私のレンタルスキーマである:(。と動作していない)ここ

var rentalsSchema = new mongoose.Schema({ 
    featured: { 
     type: Boolean, 
     default: false 
    }, 
    Title: String, 
}); 

は、私がこれまで試したものです

router.get('/rentals', function(req, res) { 
    db.collection('rentals').find().sort({ 
     featured: 1 
    }).toArray(function(err, items) { 

    }); 
}); 
+0

1は昇順を表します。 -1は降順を表します。そのため、値を1にしたい場合は、sortオブジェクトを{featured:-1} – Filip

答えて

1

.sort({ featured: -1 })に変更.sort({ featured: 1 })featuredの値がtrueのものは、偽のものの前に来るようにしてください。false

ブール型フィールドによるデフォルトの並べ替えのようです(0と1の数値とデフォルトの昇順のためかもしれません)。これを実証するには、Chrome Dev Toolsコンソールを開き、[true, false, false, true].sort()と入力します。結果は[false, false, true, true]です。

+0

と置き換える必要があります。私はこれを打ち、戻ってくるだろう。ありがとうございました! – AndrewLeonardi

+0

完全に作業しました。ありがとうございました! – AndrewLeonardi