職場では、Node JS + Mongo DB(Mongoose)に基づいて位置情報アプリケーションを管理しています。私たちが必要としたジオロケーションの機能性は非常に単純で、既にMongoDB($ near、$ geoWithin、$ geoIntersect)で利用できました。私たちの主な問題はちょうど要件がありました。私たちは、保存された場所のいくつかの間の最善のルートを確認するために、「最短経路」機能を使用する必要がありました。mongoDB、ノードJSと最短パス関数、任意のオプションを利用できますか?
インターネットでの検索と検索では、mongoには最短パス機能がないようですが、このタスク(neo4jまたはpostgis)を実行するために2番目のデータベースを処理することをおすすめします。
質問は、mongoとノードだけで最短経路機能を実現する手頃な方法がありますか?または2番目のデータベースを扱う場合、何が最良の組み合わせになるか?
UPDATE
最近、私はモンゴDBヨーロッパ16で、モンゴDB 3.4で$ graphLookup機能を発見した最短経路を追跡するために有用であることができる方法についての協議を満たしています。これは現在、私が探しているものを達成するための適切な機能ですか?
感謝cjungel、実際にこの可能な解決策の一つであり、主な問題は、多くの場合、ノードの量がちょうど何千人ものユーザーが潜在的にこの機能を使用することに基づいて、メモリにロードするために広く大きくなる可能性があるということです。そのケースでは – dakairus
@ dakairusです。あなたの唯一の選択肢は、あなたのアーキテクチャに新しいデータストアを導入することだと思います。あなたのリアルタイム要件とデータの量に応じて、neo4jまたは別のgrapthストアにグラフを定期的にインポートすることができます。次に、neo4jをリアルタイム最短経路計算に使用することができます。最新のデータを常に計算で考慮する必要がある場合は、neo4jをストレージに使用し、グラフ関連の操作をすべてクエリするようにアプリケーションを変更する必要があります。 – cjungel