1

$min/のようなクエリ修飾子$maxをドキュメントでマングースと一緒に使用する方法がわかりません。そうする方法はありますか?

4

1 に答える 1

0

Mongoose はユーザーに代わって多くの操作を実行して便利にするため、これらの操作の一部と通常は競合する可能性があるため、Mongoose を使用するときにそれを行う自然な方法はわかりません。

私はこれを試していませんが、これを行うことができるかもしれません:

Model.find( { $query: { <query> },
    $max: { myField: 100 }, $min: { myField: 10 } }, function(err, models) {
    // do something with results
});

構文と修飾子を使用する場合、定義で明示的に指定する必要があるため、$queryマングースの などの他のものを使用することはできません。sort$query

または、 などのクエリ演算子を 1 つ以上使用することもできます$gte$minおよび$max、クエリ修飾子として、両方ともMongoDbに、他の演算子が使用しないインデックスを使用するように強制します。

Model.find().gte("myField", 10).exec(function(err, models) {})

コメントで指摘されているように、setOptions( documentation ) も使用できます。ただし、それを使用できないという同じ制限と、他の多くのオプションがまだあります。

いずれにせよ、代わりに , などの他のクエリ演算子を使用することを検討し、/$gteを介してインデックスの使用を強制するのではなく、データベースクエリエンジンがクエリと利用可能なインデックスに基づいて賢明な選択を行うようにすることをお勧めします。どちらかを使用することで、より適切なインデックスの選択肢がある場合でも、それらが使用されます。$max$min.

于 2013-10-29T10:50:54.277 に答える