0

Sorry this sounds like a silly question but I'm new with mongoDB and I could not find a solution.

I want to get a determinate number (n) of "premium" objects from a collection and another determinate quantity (m) of elements which are no "premium". Both kind of elements are stored in the same collection and they have a boolean field called "premium". They are also geolocated (2d indexed array) and I wanted to get them ordered by distance and then by premium/not premium (in this order of importance).

Don't Know if I am missing something and sorry to disturb.

Thanks in advance.

4

1 に答える 1

0

1 つのクエリで 2 つのクエリを作成することはできません。2 つのクエリを実行し、それぞれに制限を使用してから、それらをアプリケーションで組み合わせる必要があります。

または、「プレミアム」と「非プレミアム」の述語なしで 1 つのクエリを実行し、アプリケーションで分割します。ただし、結果に十分なプレミアム ドキュメントと非プレミアム ドキュメントが含まれるように、アイテムの数を過大評価する必要がある場合があります。

距離で並べ替えているため、まったく同じ場所のドキュメントを作成する必要がない限り、距離が同じ 2 つのドキュメントが存在する可能性はほとんどないため、「プレミアム」での 2 番目の並べ替えでは、必要があります。

于 2013-02-05T13:24:18.400 に答える