MongoDBでシャードコレクションの対象クエリを取得できません

ダニエル

コレクションは、ハッシュされたフィールド上のシャーディングされたコレクションです。次のクエリは間違いなくindexOnlyである必要がありますが、それ以外の場合は説明します。

db.collection.ensureIndex({field : "hashed"})
db.collection.ensureIndex({field : 1, "field2" : 1, "field3" : 1})

db.collection.find(
{
    field : 100
}
,{field : 1, _id : 0}
)
//.hint({    "field" : 1,    "field2" : 1,    "field3" : 1})
//.hint({    "field" : "hashed"})
.explain()

"cursor" : "BtreeCursor field_hashed",
"nscannedObjects" : 1,
"nscanned" : 1,
"indexOnly" : false,

両方のインデックスを示唆するようにテストしましたが、いずれも対象クエリを生成しません。私は助けや提案をいただければ幸いです。

Explain():

{
    "clusteredType" : "ParallelSort",
    "shards" : {
        "repset12" : [ 
            {
                "cursor" : "BtreeCursor field_hashed",
                "isMultiKey" : false,
                "n" : 1,
            "nscannedObjects" : 1,
            "nscanned" : 1,
            "nscannedObjectsAllPlans" : 2,
            "nscannedAllPlans" : 2,
            "scanAndOrder" : false,
            "indexOnly" : false,
            "nYields" : 0,
            "nChunkSkips" : 0,
            "millis" : 0,
            "indexBounds" : {
                "field" : [ 
                    [ 
                        NumberLong(5346856657151215906), 
                        NumberLong(5346856657151215906)
                    ]
                ]
            },
            "server" : "server",
            "filterSet" : false,
            "stats" : {
                "type" : "PROJECTION",
                "works" : 3,
                "yields" : 0,
                "unyields" : 0,
                "invalidates" : 0,
                "advanced" : 1,
                "needTime" : 0,
                "needFetch" : 0,
                "isEOF" : 1,
                "children" : [ 
                    {
                        "type" : "KEEP_MUTATIONS",
                        "works" : 3,
                        "yields" : 0,
                        "unyields" : 0,
                        "invalidates" : 0,
                        "advanced" : 1,
                        "needTime" : 0,
                        "needFetch" : 0,
                        "isEOF" : 1,
                        "children" : [ 
                            {
                                "type" : "SHARDING_FILTER",
                                "works" : 2,
                                "yields" : 0,
                                "unyields" : 0,
                                "invalidates" : 0,
                                "advanced" : 1,
                                "needTime" : 0,
                                "needFetch" : 0,
                                "isEOF" : 1,
                                "chunkSkips" : 0,
                                "children" : [ 
                                    {
                                        "type" : "FETCH",
                                        "works" : 1,
                                        "yields" : 0,
                                        "unyields" : 0,
                                        "invalidates" : 0,
                                        "advanced" : 1,
                                        "needTime" : 0,
                                        "needFetch" : 0,
                                        "isEOF" : 1,
                                        "alreadyHasObj" : 0,
                                        "forcedFetches" : 0,
                                        "matchTested" : 1,
                                        "children" : [ 
                                            {
                                                "type" : "IXSCAN",
                                                "works" : 1,
                                                "yields" : 0,
                                                "unyields" : 0,
                                                "invalidates" : 0,
                                                "advanced" : 1,
                                                "needTime" : 0,
                                                "needFetch" : 0,
                                                "isEOF" : 1,
                                                "keyPattern" : "{ field: \"hashed\" }",
                                                "boundsVerbose" : "field #0['field']: [5346856657151215906, 5346856657151215906]",
                                                "isMultiKey" : 0,
                                                "yieldMovedCursor" : 0,
                                                "dupsTested" : 0,
                                                "dupsDropped" : 0,
                                                "seenInvalidated" : 0,
                                                "matchTested" : 0,
                                                "keysExamined" : 1,
                                                "children" : []
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    ]
},
"cursor" : "BtreeCursor field_hashed",
"n" : 1,
"nChunkSkips" : 0,
"nYields" : 0,
"nscanned" : 1,
"nscannedAllPlans" : 2,
"nscannedObjects" : 1,
"nscannedObjectsAllPlans" : 2,
"millisShardTotal" : 0,
"millisShardAvg" : 0,
"numQueries" : 1,
"numShards" : 1,
"indexBounds" : {
    "field" : [ 
        [ 
            NumberLong(5346856657151215906), 
            NumberLong(5346856657151215906)
        ]
    ]
},
"millis" : 1
}
ステニー

MongoDB 2.6と同様に、問題のシャードがそのドキュメントを所有しているかどうかを確認するための追加のクエリがあるため、完全にカバーされたシャードクエリは取得されません(MongoDB課題追跡システムのSERVER-5022参照)。

mongosシャードで発見されているが、それはライブがシャードクラスタのメタデータに応じてはならないルータのフィルタ文書。

次の場合、ドキュメントは複数のシャードに存在する可能性があります。

  • あるチャンクの移行進行中は:文書は、先のシャードへのドナーシャードからコピーされ、チャンクの移行が正常に完了するまで、ドナーシャードから削除されません。

  • 移行の失敗またはクリーンアップの不完全さの結果として、ドキュメントがシャード上で「孤立」しました。MongoDB 2.6には、孤立したドキュメントを削除するためにシャードに対して実行できるcleanupOrphanedadminコマンドがありmongodます。

この対象クエリの制限は、MongoDBドキュメントの制限:シャードクラスター内の対象クエリ」セクションに記載されていますが、対象クエリの作成に関するチュートリアルでも強調表示する必要がありますこれをより明確にするために、DOCS-3820を作成しました

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

PHP / MongoDB、コレクション内のレコードを更新できません

分類Dev

Git BashでMongoDBコレクションを取得できません(Windows)

分類Dev

Flutter-Firebaseコレクション内のドキュメントのリストを取得できません

分類Dev

Directus-関連する(1対多)コレクションをクエリできません

分類Dev

MongoDbコレクションクエリでObjectIdからStringに逆シリアル化できません

分類Dev

FirebaseFirestore-コレクション内のフィールドの値を取得できません

分類Dev

MongoDBはNodeJSの別のファイルでコレクションを取得できません

分類Dev

mongoose / javascript:Mongodbのコレクションを更新できません

分類Dev

mongodbのIDを持つコレクションに参加できません

分類Dev

Meteor + React:mongoDBコレクションからデータを取得できません

分類Dev

リフレクションゲッターでフィールド値を取得できませんでした

分類Dev

JMockitはJREからのコンクリートコレクションをモックできません

分類Dev

流星コレクションからデータを取得できません

分類Dev

HTMLコレクションの長さを取得できません

分類Dev

iOS:キャッシュディレクトリのコンテンツを取得できません

分類Dev

hibernateでエラーが発生しました:「リフレクションゲッターでフィールド値を取得できませんでした」

分類Dev

graphqlミューテーションからmongodbコレクションを更新できません

分類Dev

コンソールからクラウドFirestoreのコレクションを削除できません

分類Dev

Magentoコレクションイテレータ-追加の属性を取得できません

分類Dev

(gcloud.preview.app.deploy)エラー応答:[13]管理対象VMをアプリケーションのリージョンでホストできません

分類Dev

ブロードキャストレシーバーでアクションを実行できません

分類Dev

コレクションリストをソートできません

分類Dev

mongodbコレクションでasqueryableを実行できません

分類Dev

Cloud Firestoreのサブコレクションでドキュメントのフィールド値をクエリして取得できますか?

分類Dev

Solrクラウドでコレクションを作成できません

分類Dev

フィールドにクエリを実行してメインコレクションフィールドを取得し、クラウドファイヤーストアのサブコレクションドキュメントでサブコレクションを取得することはできますか?

分類Dev

xpathコレクションでWeb要素を取得できません(Workfusion)

分類Dev

複数の条件でMongoDBコレクションレコードを取得する

分類Dev

フラッターのコレクションと一緒にサブコレクションを取得できません

Related 関連記事

  1. 1

    PHP / MongoDB、コレクション内のレコードを更新できません

  2. 2

    Git BashでMongoDBコレクションを取得できません(Windows)

  3. 3

    Flutter-Firebaseコレクション内のドキュメントのリストを取得できません

  4. 4

    Directus-関連する(1対多)コレクションをクエリできません

  5. 5

    MongoDbコレクションクエリでObjectIdからStringに逆シリアル化できません

  6. 6

    FirebaseFirestore-コレクション内のフィールドの値を取得できません

  7. 7

    MongoDBはNodeJSの別のファイルでコレクションを取得できません

  8. 8

    mongoose / javascript:Mongodbのコレクションを更新できません

  9. 9

    mongodbのIDを持つコレクションに参加できません

  10. 10

    Meteor + React:mongoDBコレクションからデータを取得できません

  11. 11

    リフレクションゲッターでフィールド値を取得できませんでした

  12. 12

    JMockitはJREからのコンクリートコレクションをモックできません

  13. 13

    流星コレクションからデータを取得できません

  14. 14

    HTMLコレクションの長さを取得できません

  15. 15

    iOS:キャッシュディレクトリのコンテンツを取得できません

  16. 16

    hibernateでエラーが発生しました:「リフレクションゲッターでフィールド値を取得できませんでした」

  17. 17

    graphqlミューテーションからmongodbコレクションを更新できません

  18. 18

    コンソールからクラウドFirestoreのコレクションを削除できません

  19. 19

    Magentoコレクションイテレータ-追加の属性を取得できません

  20. 20

    (gcloud.preview.app.deploy)エラー応答:[13]管理対象VMをアプリケーションのリージョンでホストできません

  21. 21

    ブロードキャストレシーバーでアクションを実行できません

  22. 22

    コレクションリストをソートできません

  23. 23

    mongodbコレクションでasqueryableを実行できません

  24. 24

    Cloud Firestoreのサブコレクションでドキュメントのフィールド値をクエリして取得できますか?

  25. 25

    Solrクラウドでコレクションを作成できません

  26. 26

    フィールドにクエリを実行してメインコレクションフィールドを取得し、クラウドファイヤーストアのサブコレクションドキュメントでサブコレクションを取得することはできますか?

  27. 27

    xpathコレクションでWeb要素を取得できません(Workfusion)

  28. 28

    複数の条件でMongoDBコレクションレコードを取得する

  29. 29

    フラッターのコレクションと一緒にサブコレクションを取得できません

ホットタグ

アーカイブ