問題タブ [2dsphere]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
753 参照

mongodb - Mongodb 複合 2dsphere インデックスが期待どおりに機能しない

次のような約20000のドキュメントを含むsearch2というコレクションがあります。

次のコマンドでインデックスを定義します。

コレクションには、このインデックスと「_id」フィールドのデフォルト インデックスのみがあります。

次のクエリを実行すると、「nscannedObjects」が = 10 になると予想されます。

しかし、これは結果です:

クエリから並べ替えを削除すると、次のようになります。

では、なぜインデックスを使用して結果を並べ替えないのでしょうか? このドキュメントから : http://docs.mongodb.org/manual/applications/geospatial-indexes/ http://docs.mongodb.org/manual/tutorial/sort-results-with-indexes/ 2dsphere インデックス フィールドのプレフィックスまたはサフィックスとしてスカラー インデックス フィールド (つまり、昇順または降順) を持つ複合インデックス" および "並べ替えドキュメントが複合インデックスのサブセットであり、インデックスの先頭から開始する場合、MongoDB は使用できますクエリ結果の取得と並べ替えの両方に使用するインデックス。"

私は何が欠けていますか?

前もって感謝します

0 投票する
1 に答える
2449 参照

mongodb - MongoError: 特別なインデックスが見つかりません: 2d (インデックスが必要)、2dsphere (インデックスが必要)

MongoDB の find メソッドを使用して、特定の地点周辺の緯度と経度のポイントを照会することにより、MongoDB の地理空間インデックスを使用しようとしています。エラーが発生し続けます:

MongoError: 特別なインデックスが見つかりません: 2d (インデックスが必要)、2dsphere (インデックスが必要)

約1時間グーグルした後、これに関するドキュメントがどこにあるのかわかりません。また、適切な説明が見つかりません。Mongoose を使用して作成したスキーマは次のとおりです。

次に、findメソッドを使用して、ユーザーが指定したポイント周辺の他のイベントドキュメントを検索します。

ここで間違っている構文は何ですか? 私は何か大きなものを見逃していますか?このリンクの他に、ドキュメントへの URL も同様に優れています。

0 投票する
0 に答える
259 参照

node.js - マルチポリゴンで 3000 GeoJSON の mongoDB を照会する最速の方法

私は次のものを持っています:

  • Node.js 0.10 および MongoDB 2.4 を使用する openshift カードリッジ
  • 5000 個の GeoJSON ファイル、それぞれに 1 つのマルチポリゴンが含まれています

ユーザーがポイントの座標を送信し、このポイントがマルチポリゴンの内部 (含まれている) であるすべての GeoJSON ファイルのリストを取得するアプリを構築しようとしています。

このクエリを処理する最速/最も効率的な方法は何ですか? mongoDB を使用していない場合でも、一般的なアイデア/入力を歓迎します。

ありがとう !

Ps: ポイントとマルチポリゴンを交差させるには、openshift が mongoDB 2.6 にアップグレードするまで待つ必要があるかもしれません。

0 投票する
2 に答える
2550 参照

mongodb - Mongodb Sphere インデックスがオブジェクトを拒否する

こんにちは、私は 2D 球体インデックスを持つコレクションを持っています

特定のオブジェクトを挿入しようとすると、エラーが発生します。

マルチポリゴン リングは閉じていますが (最初と最後の座標は同じです)

何か案は?

拒否された別のポリゴンを次に示します。

ここに貼り付けると問題ないようです: http://geojsonlint.com/

ポイントが2回使用されると、mongo dbが気に入らない可能性があります

0 投票する
2 に答える
329 参照

mongodb - MongoDB バージョン 2.6 は、ジオキーを抽出できず、ジオメトリの形式が正しくない可能性があることを理由に、2dsphere ジオインデックス作成で引き続き失敗します。

バージョン 2.4 で、異なる経度/緯度データ セットを使用して参照エラーが発生していました。2.6 にアップグレードすると、そのデータ セットで 2dsphere インデックスを使用できるようになりました。ただし、別のデータ セット (以下の抜粋) では、2dshpere を使用してインデックスを作成しようとすると、古いエラー メッセージが表示されました。エラーメッセージの抜粋は次のとおりです。

エラーを受け取るのと同じ問題があります。オブジェクトからジオキーを抽出できません。不正なジオメトリ?. オブジェクトは次のとおりで、GeoJSONLint.com で検証されています。また、mongodb バージョン 2.6.1 を使用しています。これは最近、バージョン 2.4 を使用していたときに発生し、2.6 にアップグレードしたところ問題は解決しましたが、新しい geojson データ セットで再びエラーが発生しています。誰かが私にそれを解決する方法を教えてくれれば、それは非常に役に立ちます。

上記で db.exposureByZip.ensureIndex({"geometry" : "2dsphere"}) を実行すると、次のエラーが発生します。

0 投票する
0 に答える
507 参照

php - PHP の近く - mongodb の空間インデックスとクエリ

私は近くの場所を照会するためにphpを使用しています。

私はmongoDBに次のgeoJSONを持っています

ポイントについて近くの場所を照会したいのですが、phpにインデックスがあります

私のクエリは次のとおりです。

$arr->explain() は私に望ましい結果を与えていません。誰かが助けることができれば、何がうまくいかないのですか。

以下が結果です

'BasicCursor' を返していますが、代わりに 'S2Cursor' を与える必要があります

0 投票する
1 に答える
487 参照

mongodb - クエリが間違った結果を返す

多角形 (単純なボックス) 内のアイテムのマッチングの問題に悩まされています。クエリされたボックス内にあるアイテムが結果にならない理由がわかりません。だからここに私が持っているもの:

これが私のドキュメントです(さまざまな形式をテストしました):

そして、ここにクエリがあります:

しかし問題は、それがゼロの結果を返すことです!
よくわからない場合は、これをコピーするよりも、その点が実際には正方形になっています。

ここで確認してください

私は混乱しています、誰かがこれを手伝ってくれませんか?
前もって感謝します!

更新:
また、これらのポイントは、たとえば次のようにポリゴン領域を減らすと見つかります。

必要であれば、そのようなポイントを 100 ほど提供できます。たとえば、もう 1 つの奇妙な点:

更新:
これは、ポイント コレクション ダンプ (約 700 ポイント) を含むファイルです。

0 投票する
0 に答える
488 参照

mongodb - MongoDb $near とクエリ

以下のような構造のドキュメントのコレクションがあります

次のクエリを実行して、開始がポイントから 2000 単位で、終了がポイントから 1 単位であるドキュメントを検索しようとしています。

クエリを実行すると、常に or を実行しているかのようにドキュメントが返されます。つまり、start はポイントから x 単位、end はポイントから x 単位です。したがって、次の 2 つのドキュメントに対して実行すると、最初のドキュメントのみが返されると予想される場所で両方が返されます。

私はこれを次のようにできるはずだと確信しています

http://blog.mongodb.org/post/50984169045/new-geo-features-in-mongodb-2-4

「さらに、同じ複合インデックスで複数の 2dsphere インデックスを持つことができます。これにより、次のようなクエリが可能になります。「JFK から 50 マイル以内の開始位置と YYC の 100 マイル以内の終了位置を持つルートを検索する」。

明確にするために。上記のクエリは、START ロケーション $near point AND END ロケーション $near point に対して AND クエリを実行することになっています。しかし、それが実際に行っているように見えるのは、場所 $near point を開始するか、場所 $near point を終了することです。

1 つのドキュメントで 2 つの $near クエリに対して AND クエリを実行するにはどうすればよいですか?

0 投票する
1 に答える
36 参照

2dsphere - YiiMongoDbSuite + 2dsphere が機能しない

私は YiiMongoDbSuite 1.3.6 を持っています

EMongoCriteria.php に追加の基準を追加します

のようなメッセージを返す

また、フィールドにはインデックスが付けられます

リクエスト時にコンソールで

有効な結果を返す

0 投票する
0 に答える
208 参照

node.js - MongoDB と nodeJS: 2dsphere インデックスを使用した長い待ち時間

私はmongoDBを使用してnodeJSアプリケーションに取り組んでおり、現在のユーザーの隣にすべてのユーザーを取得しようとしています...

私の本当の問題は、クエリが「2d」インデックスに基づいている場合(1分で約25000の応答が得られた場合)、アプリケーションが静かに動作することですが、「2dsphere」インデックスで同じことをしようとすると、待ち時間が長くなります( 1 つのリクエストの実行に 2 秒以上かかります)...

ここに私の要求があります:

そして、ここに私のスキーママングースがあります:

注意: MongoDB は ubuntu サーバーで実行され、私のインデックスは "db.users.ensureIndex({"loc":"2dsphere"})" で作成されます

パフォーマンスを向上させるためのアドバイス、ベスト プラクティス、または提案があれば、喜んでお聞きします。ありがとう !よろしくお願いします。