0
すべてのエントリに対して2つのフィールド(xとi)の固有の組み合わせを持つデータベースがあります。だから、_idフィールドを{_id:{a:x、b:i}}に設定しました。今私は、特定の値xを持つが、iの値を持つすべての値を取得したいと考えています。1フィールドが不明なMongoDB複合キークエリ
例:db.find({_id: {a: 1, b: { $exists: true}})
またはさらに簡単:
{_id: {a: 1, b: 5}},
{_id: {a: 1, b: 3}},
{_id: {a: 2, b: 5}}
{_id: {a: 3, b: 3}}
今、私のような何かをしたい返す必要がありdb.find({_id: {a: 1})
:
{_id: {a: 1, b: 5}},
{_id: {a: 1, b: 3}}
私はこれを達成できる方法はありますか?つまり、このコンポジット・プライマリ・キーのどのような方法でも問合せできますか?現時点では、オブジェクト自体にフィールドを追加しましたが、データセットが実際に大きくなるので、これは最適なソリューションではありません。
編集:
db.someCollection.find({"_id.a": 1, "_id.b": { $exists: true}})
が溶液であると思われるが、これはオブジェクトのフィールド(しないキーで)としてを添加しかし同じように遅いです。より速い方法がありますか?
これは、値をプライマリキーとして設定するのではなく、データベースフィールドと同じように設定すると同じように遅くなるようです。これを照会する方法はありますか? –
@ JordenvanBreemenこれは複合キーを照会する唯一の方法だと思います。私が見つけたらここで更新します。 –