問題タブ [mongodb-indexes]

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 投票する
1 に答える
346 参照

mongodb - MongoDB インデックスの有効性評価のベスト プラクティス

MongoDB ベースの REST サービス設定でインデックスの有効性を評価したいと考えています。コレクションに合成データセット (例: 10,000,000 ドキュメント) を入力し、ロード インジェクター プロセスを実行してランダムな REST 操作 (それぞれに MongoDB レイヤーでのクエリが含まれます) を実行して、使用されているインデックスとそれらに関する統計情報 (例:インデックスあたりのヒット率)。

Explain()コマンドまたはindexStats の使用を検討しました。ただし、explain() に関しては、2 つの問題があります。1) 1 つのクエリの有効性しか評価できない、2) ロード インジェクター プロセスが REST サービスと対話する「ブラック ボックス」環境で使用するのが難しい。 MongoDB ではトップですが、MonoDB 自体ではありません。indexStats に関しては、私の知る限り、「ディスク上の」インデックス構造に関する情報は表示されますが、インデックスの使用法に関する情報は表示されません。

したがって、その種のテストを行う最良の方法はどれですか? 手順の説明やトピックに関する情報への URL は大歓迎です。

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

mongodb - Mongo: フィールドの $exists のインデックス

私は次のマングーススキーマを持っています:

一部の dataObject では、eventCount が定義され、正の数になります。他の dataObject では、eventCount は未定義です。このようなクエリができるだけ高速になるようにインデックスを設計したいと思います。

これを行う最善の方法は何ですか?

これが私が考えることができる最良の解決策ですが、誰かがより良い解決策を持っているかどうか知りたいです:

isEventCount ブール変数を dataSchema に追加します。次のロジックを使用して、オブジェクトを db に保存する前に isEventCount が計算されるように、mongoose ミドルウェアをセットアップします。

次に、このようなインデックスを作成します

そして、このようにクエリを実行します

このアプローチにはいくつかの欠点があります。すなわち:

  1. 冗長な情報をデータベースに保存しています。
  2. これを実現するには、追加のミドルウェア コードを作成する必要があります。
  3. データベース内の既存のエントリを変更する必要があります。

これに役立つより良い解決策またはライブラリを知っている人はいますか?

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

c# - MongoDB C# OfType() インデックスの動作

コレクションに対して次のクエリがあるとします。

また、機能は次のようにインデックス化 (スパース) されます。

私が理解しているように、C# ドライバーは、クエリを作成するときに Type 情報DBFeatureDBPointFeatureを追加のフィルターとして使用します。

インデックスがタイプクエリの前に適用されるかどうかを知りたいので、インデックスサブセットに限定されます。

そうでない場合は、最初に特定のタイプのすべてのアイテムをフェッチすることになり (これは、idexed セットよりもはるかに大きいセットです)、インデックスはほとんど無意味になります。

この場合、MongoDB の動作はどうなりますか?

どうもありがとうございました!!

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

mongodb - 同じフィールドを含む複数のインデックスがある場合、どのインデックスが使用されますか?

たとえば、find()フィールドを含む aabをこの順序で取ります。例えば、

コレクションのインデックスの配列に 2 つのキーがあります。

より正確にクエリに一致するため、mongo が最初のキーを使用することは保証されていますか、それとも 2 つのキーのいずれかがランダムに選択されるため、どちらも機能しますか?

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

mongodb - さらに別のmongodb indexOnly

私は今朝の大半を MongoDBのdocsblog、およびスタック上の他の回答を再読することに費やしましたが、他の人にとって痛々しいほど明白であることを願っている何かがまだ欠けています。

編集: サブドキュメント (メタデータ.*) を持たないようにドキュメントのスキームを変更しましたが、インデックスがカバーされていないという問題がまだあります。既存のインデックスを削除し、新しいインデックスで再インデックスしました。

だから私は持っていません:

そして、次のクエリが与えられます:

「byHostCurrent」という名前のインデックスでカバーされているものとして表示されません。

MongoDB のバージョンは 2.6.3 です。