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

mongodb - Pymongo collection.find_and_modify、使用するインデックスを指定? $ヒント?

find_and_modify クエリが間違ったインデックスを使用しています。

PyMongo を使用して正しいインデックスを (名前またはその他で) ヒントする方法はありますか?

これについては、どのドキュメントでもまったく言及されていないようです...

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

java - javaを使用して複数のフィールドを持つmongodbにインデックスを作成します

私は初めてMongoDBです。デフォルトでは、コレクションのフィールドにmongodbインデックス_idがあります。Java を使用して、さらに 2 つのフィールドにインデックスを作成する必要があります。

db.collection_name.getIndexes() を使用してmongodbでクエリを実行すると

上記が正しいかどうかはわかりません。誰か確認してくれませんか?正しくない場合、どうすれば修正できますか?

上記に加えて、検索のために私は次のようなことをしています:

さて、上記のように高速に検索するには、field1、field2、および field3 に個別にインデックスを作成する必要がありますか? または3つのフィールドすべての複合インデックス?

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

mongodb - mongodb バックグラウンド TTL がドキュメントを削除しない

Mongo 2.4.10 で TTL インデックスを使用していますが、機能しなくなりました。たとえば、あるコレクションでは、 db.collectionName.getIndexes() でわかるように、5 日 (432000 秒) に設定しました。

しかし、単一の findOne() で、予想よりも古いドキュメントが表示されます。

TTL インデックスを作成する Java コードは次のとおりです。

最近まで、すべて正常に動作しているように見えました。本番環境ではこれまで気づきませんでした。これは、すべてのデータベースと関連するすべてのコレクションで発生しています。

どうしたの ?


編集

サーバー構成を確認しました。TTL モニターが有効になっています。

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

mongodb - mongodb 高速タグ クエリ

非常に大きなコレクション (800k 以上) があり、タグに基づくオートコンプリート (単語の先頭のみに基づく) 機能のクエリを実装する必要があります。私のドキュメントは次のようになります。

たとえば、クエリが「ab」で始まり、「何らかの値」である「somefield」を持つすべてのタグの場合、結果は「abc tag1」、「abc tag3」(名前のみ) になります。挿入や更新の速度よりも、クエリの速度に関心があります。

ここでは集計フレームワークが正しい方法だと思いますが、非常に高速なクエリを実行するための最適なパイプラインとインデックスは何でしょうか?

ドキュメントは「タグ」ドキュメントではありません。クライアント オブジェクトを表すドキュメントです。簡単にするために省略したデータ フィールドがはるかに多く含まれています。各クライアントにはいくつかのタグと別のフィールドがあります (タグと混同しないように名前を変更しました)。配列 )。クライアントのグループが持っているすべてのタグの重複のないセットを取得する必要があります。

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

node.js - 一意で疎なスキーマ レベルのインデックス MongoDB と Mongoose

次のように、Mongoose を使用して、MongoDB で一意でスパースになるスキーマの 2 つのフィールドにインデックスを作成しようとしています。

次に、 User スキーマの配列で次のように使用されます。

ただし、フィールドを指定せずに複数のユーザーを保存しようとするとarray、重複するフィールドに対してエラーがスローされます。Mocha のエラーは次のようになりますarray.event_id_1 dup key {null, null}。このエラーをスローするコード セグメントの例は次のとおりです。

ArraySchema のフィールドを一意でスパースにする理由は次のとおりです。フィールドが指定されている場合array、配列に重複したオブジェクトを含めたくありません。ただし、arrayフィールドは必須ではないため、このフィールドを持っているユーザーが多数存在nullします。arrayType1明らかに、インデックス ( 、arrayType2、 )を必要とする複数のフィールドがあるため、フィールド レベルのインデックスは使用できませんarrayType3

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

mongodb - MongoDB のインデックス作成と射影

MongoDB についていくつか質問があります。

(1) 索引付けは投影に役立ちますか?

(2) コレクションに多数のインデックスを割り当て、並べ替えで検索を実行しようとした後、 を使用すると、並べ替えられたフィールドにインデックスがexplain表示されます。BtreeCursor

検索に役立った最後のインデックスのみが表示されているため、他のインデックスがクエリ部分で役立ち、explainそれを表示しなかった可能性がありますか?

またはexplain、クエリ、並べ替えなどを支援するすべてのインデックスを表示する必要がありますか?

ありがとう。