MongoDBでは、a field can have multiple values(値の配列)です。それぞれのインデックスはインデックスに登録されているため、任意の値をフィルタリングできます。しかし、複数の値を持つフィールドを「順序付け」することもできますし、結果は何ですか?MongoDBマルチキーはどのようにソートされますか?
アップデート:不等長の配列で
> db.test.find().sort({a:1})
{ "_id" : ObjectId("4f27e36b5eaa9ebfda3c1c53"), "a" : [ 0 ] }
{ "_id" : ObjectId("4f27e3845eaa9ebfda3c1c54"), "a" : [ 0, 1 ] }
{ "_id" : ObjectId("4f27df6e5eaa9ebfda3c1c4c"), "a" : [ 1, 1, 1 ] }
{ "_id" : ObjectId("4f27df735eaa9ebfda3c1c4d"), "a" : [ 1, 1, 2 ] }
{ "_id" : ObjectId("4f27df795eaa9ebfda3c1c4e"), "a" : [ 2, 1, 2 ] }
{ "_id" : ObjectId("4f27df7f5eaa9ebfda3c1c4f"), "a" : [ 2, 2, 1 ] }
{ "_id" : ObjectId("4f27df845eaa9ebfda3c1c50"), "a" : [ 2, 1 ] }
{ "_id" : ObjectId("4f27e39a5eaa9ebfda3c1c55"), "a" : [ 2 ] }
は長い配列は、短い配列
だから、より "下" である、なぜ[0]の前に[0,1です]、[2,1]の後は[2]ですか? 最初の配列要素に対してのみソートが行われていますか?または最低のもの?その後、それは挿入命令ですか?
インデックススキャンの場合(テーブルスキャンとは対照的に)、これはどのように実装されますか?
インデックスが使用されている場合でもそれはそうですか? – Thilo
これは、インデックスがクエリの結果を変更しないインスタンスの1つです。残念ながら、これはMongoDBでは常にそうではありません(これは率直に言ってバグだと私は考えています)。 –
ただチェックしました。インデックスを作成しても、並べ替え順は変わりません(どちらが良いですか)。これがどのように実装されているのだろうか。 – Thilo