0

一意でないキーによって索引付けされた一意のドキュメントがあります。このドキュメントをユニークなものにしているのは、ドキュメント内の複数のキーの組み合わせです。例えば:

{
  first: 'John',
  last: 'Foo'
}
{
  first: 'Henry',
  last: 'Bar'
}
{
  first: 'Frank',
  last: 'Foo'
}
{
  first: 'John',
  last: 'Bar'
}

したがって、上記の例に基づいて: の名前を照会したい場合、Frank1 つの結果しか得られません。理想的には、結果が 1 つしかないため、姓とクエリを比較する必要さえありません。ただし、 name を照会すると、John2 つの結果が得られるため、2 番目の引数を比較する必要があります。

Mongo では、このスタイルのクエリをどのように実現できますか? 最初の一致が 1 つしかない場合に、不要な比較を省くことが目的です。

このスタイルのクエリは正しいドキュメントを保証しないことに注意してください。一致するドキュメントが 1 つだけの場合、プライマリ フィールドとそれに続く各フィールドの一致は、ドキュメントの身元を確認するのに「十分」であると想定します。ただし、この方法を使用すべきではない明確な理由が他にある場合は、ぜひ議論してください:)

4

1 に答える 1

0

特にこれに関するインデックスがある場合は、これについてまったく心配しません。first, last の複合インデックスは、「first」で始まるインデックス要素のみをスキャンします。それが 1 つのドキュメントである場合、それは停止します。「最後」にも一致する必要がある場合は、インデックスのそれらの部分をスキャンします。

于 2013-02-07T23:43:30.133 に答える