0

次のことを行うことになっているクエリがあります。2セットの座標を取得し、いずれかの座標に近い位置を返します。

私はMongoose.jsでNode.jsに取り組んでいます。

元のクエリコードは次のとおりです(query.or()構文を使用する前に:

query.or([{geoNear: "loc", near: start, spherical: true},{geoNear: "loc", near: end}]);

$or私が最初にコードを次のように試したため、問題は使用しているようです。

            that.count({
                _cat: _cat ,
                $or: [
                    {
                        loc: { $nearSphere: start }
                    },
                    {
                        loc: { $nearSphere: end }
                    }
                ]}, function(err, c) {
                    // do something
                });

$or(すなわちstart)なしで1つの場所を使用して検索するendと、結果を得ることができます。それが問題がにあると私が確信している方法です$or

mongoDB / mongoose$orは地理空間検索での使用をサポートしていますか、それとも何か間違ったことをしていますか?

4

1 に答える 1

0

$orうまくいかないようですので、今のところ2つのクエリを実行し、それぞれの結果を評価してカウントを返すことを選択しました。実際の数は必要ないのでうまくいきますが、各ポイントから一定の距離内に利用可能な場所があるかどうかを知る必要があります。

誰かが同様の問題を抱えていて、回避策としてこのアプローチを使用する場合は、最初のクエリのコールバックに2番目のクエリをネストすることを忘れないでください。クエリを実行している場所が2つ以上ある場合、これは明らかにより問題になります。

于 2012-12-12T09:01:15.163 に答える