問題タブ [multikey]
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.
c# - ネストされた辞書を作成して 3 つのキーで設定する方法
3弦のバリエーションに対応した独特のダブルを持っています。辞書などにデータを入力して、次のようなものを呼び出して値を取得できるようにしたいと考えていdict[key1][key2][key3]
ます。
私はたくさんのことを試しました
これにより、「エラー 4 名前空間には、フィールドやメソッドなどのメンバーを直接含めることはできません」のような構文エラーとエラーが表示されます
と
これにより、「エラー 1 配列初期化式を使用して配列型に割り当てることしかできません。代わりに新しい式を使用してください。」のようなエラーが表示されます。
と
これにより、「クラス、構造体、またはインターフェイス メンバー宣言のエラー 2 無効なトークン '"k1"'」のような構文エラーとエラーが発生します。
これについてどうすればよいですか?前もって感謝します。
![ここに画像の説明を入力][1]
編集:Joneyのコードを試す:
arrays - サブドキュメントの配列でのmongodbマルチキーインデックスの境界
背景として、私の質問に最も関連していると思われるドキュメントのページは、マルチキー インデックスの境界とインデックスの交差に関するこのページです。
サブドキュメントの配列内のフィールドに対する $elemMatch クエリで、mongo がインデックス境界を適切に結合していないように見えるという問題があります。
ドキュメントは、私の特定のユースケースが機能しないとは言っていないようで、私がやっていることに非常に近い例がたくさんあります。技術的な観点から、これが機能しない理由は思いつきません。私は何かを見逃していましたか、それともなぜこれがそのように振る舞うのか誰かが私に説明できますか?
次のようなドキュメントのコレクションから始めています。
次のようなインデックスを配置しています。
次のように、データ配列にサブドキュメントが 1 つしかない場合:
データに対する $elemMatch クエリは問題なく動作します。
data
しかし、配列内に複数のサブドキュメントを含むドキュメントを追加すると、次のようになります。
クエリは桁違いに長くかかり (自明でないテスト ケースでは)、Explain は境界を適切な から に変更し[2, 2]
、[-Infinity, 2]
フラグisMultiKey
はに変わりtrue
ます。
正しい btree インデックスを使用して正しい結果を取得していますが、この問題は、大規模なデータセットで使用できるかどうかの違いです。
私が使用しているクエリもこれと同等であることを知っています:
しかし、私は簡単にするためにそれをやっています - $gt $gte $lt $lte のいずれかで境界を指定すると、インデックス境界がインデックスで不適切に設定されているという点で同じ動作が観察されます (または私にはそう思われます)。
参考までに、上記のクエリを実行すると、実際に予想されるインデックス境界が取得されるため、mongo が複数のサブドキュメントの配列を使用して必要な計画を満たすクエリを発行できないわけではありません。
... もう一度言います - 何か見逃しましたか? 私はそれを間違っていますか?回避策はありますか?これはバグですか、それとも既知の問題ですか?
複製されたシャード クラスターで mongodb v2.6.5 を使用しています。
java - Java: doubleKey タイプのマップ、正しい hashCode() の作成方法は?
Map のキーとして MultiKey オブジェクトがあります。
キーは、名前 (文字列) と ID (int) で構成されます。
次の契約を満たす必要があります。両方のキーの名前が等しいか、両方のキーの ID が等しい場合、キーは等しくなければなりません。
この契約に違反しないようにするには、hashCode() 関数をどのように実装する必要がありますか? それは可能ですか?
equals の実装は簡単です...
しかし、hashMap は hashCode() のみを使用し、equals() を気にしないため、これは機能しません...
例:
java - Multikey(1,2,3) を使用してエントリを Map に格納しました。今は (1) しかありません。Multikeys に (1) が含まれるすべてのエントリを取得できますか?
3 つのパラメーターを持つ Multikey を使用して、Map に値を挿入しました。ここで、マルチキーに特定のキーを持つすべてのエントリを取得したいと思います-他の2つの値についてはわかりません..
今は valueA しかありません。値を取得する必要があります
明確化が必要な場合は、質問してください。投票を終了するのではなく、詳しく説明します..ありがとう:)
..
java - マルチキー インデックスを使用していない MongoDB
2 つのフィールドを持つドキュメントを含む MongoDB バージョン 3.0.3 コレクションがあります。
- 数値の長い ID
- 60 個の数値 Double の配列。
配列にマルチキー インデックスを作成し、メソッドを使用してインデックスが存在し、マルチキーであることを確認しましたgetIndexInfo()
。ただし、配列内の特定のフィールドの 2 つの範囲の交差をクエリすると、コレクションに 1,000,000 のドキュメントがあるにもかかわらず、Mongo はこのインデックスを使用しません。explain()
これは、メソッドの出力からわかります。さらに奇妙なことに、 でインデックスの使用を指定するとhint
、Mongo は 1,000,000 のドキュメントすべてと 60,000,000 のインデックス エントリをトラバースしますexplain()
。
次のコードでクエリを作成しています。
何かご意見は?
よろしくお願いします。
Explain 出力の要求に応じて:
ヒントを指定しない場合、Explain の出力は次のようになります。
次のコードで使用するインデックスを指定する場合:
collection.find(q_and).hint("array_1").explain();
説明の出力は次のとおりです。
java - 複数の Enum 型から Map の一意のキーを作成する
複数の列挙型が ie の値を見つける必要があるという要件がありますMap<Key,Value>
(列挙型の組み合わせは一意の値を返します)。キーとして機能するラッパーオブジェクトにキーと言うような多くのオプションがあると思います。また、キーが 2 つに制限されている場合は、Guava Table を使用できます (不明)。
2 つの列挙型が一意の計算値にマップされる以下のアプローチを確認したいので、理解するための提案が必要です -
i) このアプローチが問題ない場合?
ii) はいの場合、スケーラブルですか? つまり、次のように「n」個の列挙型をサポートするように簡単に汎用にすることができますtoKey(Enum ...enums)
以下は、2 つの列挙型のスニペットです。
と
ありがとう!
c# - マルチキー ハッシュまたはディクショナリ、出力としての値のリスト
私は C# が初めてで、複数のキーを持つ一般的なリストが必要です。
データのキーを作成する 3 つのパラメーターがあります。各レコード (各 3 つのキー) には、一連の値があります。
リスト内の各ノードの値がキーの値であり、各ノードの値がそのキーに関連する値を含むリストを指す一般的なリストが必要です。
以下は、私が探しているデータとデータ構造の例です。
複数のキーとリンクリストであるオブジェクトを指している値を持つハッシュテーブルを持つことを考えていました。または、これら 3 つのキーを使用して辞書を作成し、再びリンク リストの先頭へのポインターを返します。
C#でのやり方を教えていただけると助かります。