問題タブ [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 に答える
1246 参照

javascript - Meteor でコレクションのインデックスのリストを取得する

Meteor を使用してコレクションのインデックスのリストを取得するにはどうすればよいですか?
Mongo のプロキシに似たもの (またはプロキシに基づくもの) Meteor にはまだ多くのインデックス API がありません (最終的には存在する予定です)。しかし、誰かがすでにこの問題を解決していることを願っています 乾杯db.collection.getIndexes

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

mongodb - ハッシュインデックスと昇順インデックスの Mongodb パフォーマンスの違い (順序付けされていないフィールドでハッシュを使用しない理由はありますか?)

mongodb には複数のタイプのindexがあります。この質問では、ソートに使用できる昇順 (または降順) インデックスと、ドキュメントによると「主にシャード クラスターで使用され、ハッシュされたシャード キーをサポートする」ハッシュ インデックスに興味があります ( source )。データの均等分布」(ソース)

db.test.ensureIndex( { "key": "hashed", "sortOrder": 1 } )エラーが発生するため、次のようなインデックスを作成できないことはわかっています

私の質問:

インデックス間:

  1. db.test.ensureIndex( { "key": 1 } )

  2. db.test.ensureIndex( { "key": "hashed" } )

クエリdb.products.find( { key: "a" } )の場合、どちらがよりパフォーマンスが高いですか?、hashedキーはO(1)


質問にたどり着いた方法:

ではマルチキー インデックスを使用できないことを知る前にhashed、フォームのインデックスを作成しました。db.test.ensureIndex( { "key": 1, "sortOrder": 1 } )作成中に、ハッシュ インデックスが昇順インデックスよりもパフォーマンスが高いかどうか疑問に思いました (ハッシュは通常 ですO(1))。(上で述べたように)db.test.ensureIndex( { "key": "hashed", "sortOrder": 1 } )許可されていなかったため、キーをそのまま残しました。しかし、問題は、キーによる検索でハッシュ化されたインデックスの方が高速であることです。

インデックスを作成した状況は次のとおりです。

キーで分類されたドキュメントのソート済みリストを含むコレクションがありました。

例: {key: a, sortOrder: 1, ...}, {key: a, sortOrder: 2, ...}, {key: a, sortOrder: 3, ...}, {key: b, sortOrder: 1, ...}, {key: b, sortOrder: 2, ...}...

分類に を使用し、keyページネーションに sortOrder を使用したため、常に に 1 つの値をkey使用してフィルタリングをクエリsortOrderし、ドキュメントの順序には を使用しました。

これは、次の 2 つのクエリが考えられることを意味します。

  • 最初のページの場合db.products.find( { key: "a" } ).limit(10).sort({"sortOrder", 1})
  • そして他のページについてはdb.products.find( { key: "a" , sortOrder: { $gt: 10 } } ).limit(10).sort({"sortOrder", 1})

この特定のシナリオでO(1)は、キーとO(log(n))sortOrder を検索するのが理想的でしたが、それは許可されませんでした。

0 投票する
3 に答える
621 参照

mongodb - 小さな固定サイズのmongoコレクションに対してインデックスを作成する必要がありますか?

固定数のエントリを持つ mongo コレクションがあり、その数が 300 ~ 400 を超えることはないとします。例:

これらのフィールドのうち、name と phoneNumber にインデックスを付けたいと思います。

このような小さなコレクションのインデックスを作成することは賢明ですか? その決定は、コレクションのサイズにまったく依存しますか? 作成するインデックスの数に依存しますか?

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

mongodb - ソートとクエリの両方を使用する場合の MongoDB での MapReduce インデックスの使用

MapReducesortに aと a の両方を指定する場合、最適なパフォーマンスを得るqueryには、以下が必要です。

  1. ソートで使用されるフィールドを含む 1 つのインデックス、次にクエリで使用されるフィールド

  2. クエリで使用されるフィールドを含む 1 つのインデックス、次に並べ替えで使用されるフィールド

  3. 2 つの個別のインデックス


たとえば、ドキュメントにはフィールドが含まれていますA, B, C, D。Map-Reduce は、フィールドの並べ替えとフィールドAによるクエリを使用していますB, C

次のインデックスのどれが望ましいでしょうか。

  1. { "A" : 1, "B" : 1, "C" : 1 }

  2. { "B" : 1, "C" : 1, "A" : 1 }

  3. { "A" : 1 }{ "B" : 1, "C" : 1 }


これはどこかに文書化されていますか?(ソートとクエリの両方を使用する場合の map-reduce によるインデックスの使用。)

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

mongodb - 特定の配列 (または配列のキー) を取得するにはどうすればよいですか?

mongoDB で「unique6」を含む特定の配列 (または配列のキー) を取得するにはどうすればよいですか。

注: 配列内の値は一意です。

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

mongodb - mongodb compund インデックスとインデックスの交差

コレクションには、シャード全体で約 30 億のドキュメントが含まれます。インデックスによって完全に満たされないクエリを使用すると仮定します。また、ソートにキーを使用していません。

次のようなインデックスを持つことは理にかなっていますか (クエリに一致します):

または:

0 投票する
3 に答える
32571 参照

mongodb - MongoException: 名前のインデックス: コードは別のオプションで既に存在します

次の構造のmongodbコレクションがありますterm

用語コレクションを表すJavaクラスTerm.java

私は多くの文書をterm集めています。今、新しいフィールドがTerm.javaasに追加されました

statusにフィールドを追加した後Term.java、コレクションに新しい用語を挿入しtermているときに、exceptoin を取得しています。

com.mongodb.MongoException: 名前のインデックス: コードは別のオプションで既に存在します

MongoDB バージョン: 2.6.5 および spring-data-mongodb バージョン: 1.3.2 を使用しています。