ネストされたサブ文書の上記文書のインデックス作成中にMongoDB MongoDBのビッグデータ技術

まず、コレクションに割り当てるカスタム値をOBJECTID

MongoDBのエンタープライズ> db.testid.insert({_ ID:{IMSI: "4567890123"、アドレス "試験データ"}})

MongoDBのエンタープライズ> db.testid.createIndex({ "_ id.imsi":1})

MongoDBのエンタープライズ> db.testid.createIndex({ "_ id.address":1})

MongoDBのエンタープライズ> db.testid.createIndex({ "_ ID:IMSI":1、 "_ id.address":1})

 

 第二に、ネストされたクエリ

MongoDBのエンタープライズ> db.testid.find()かなり()
{ "_id":{ "IMSI": "4567890123"、 "住所": "测试数据"}}
{ "_id":{ "IMSI":「4567890123 」、 "住所": "测试数据"、 "ID":123}}

MongoDBのエンタープライズ> db.testid.find({ "_ id.imsi": "4567890123"})
{ "_id":{ "IMSI": "4567890123"、 "住所": "测试数据"}}
{ "_id": { "IMSI": "4567890123"、 "住所": "测试数据"、 "ID":123}}

 

第三に、記事の再版

この記事では、我々はあなたがより深く関連するコンテンツを理解するために、何かを得るために願っています。この記事を読んだ後、ネストされたサブ文書の上記文書の索引付け、中MongoDBのビッグデータ技術について説明します。

テストライブラリの1のMongoDB:

> db.data.insert({名: "1616"、インフォ:{URL: "http://www.1616.net/"、市: "北京"}});

> db.data.insert({名: "hao123"、インフォ:{URL: "http://www.hao123.com/"、市: "北京"}});

> db.data.insert({名: "ll4la"、インフォ:{URL: "http://www.114la.com/"、市: "東莞"}});

 

2.フィールドの情報にインデックスを作成します。

> db.data.ensureIndex({INFO:1});

 

3.dataインデックステーブルクエリ:

RS0:PRIMARY> db.data.getIndexes()

[

        {

                "V":1、

                "キー":{

                        "_id":1

                }、

                "名前": "_ID_"、

                "NS": "test.data"

        }、

        {

                "V":1、

                "キー":{

                        "情報":1

                }、

                "名前": "info_1"、

                "NS": "test.data"

        }

]

4.インデックス使用状況:

次のクエリは、インデックス情報を使用することができます。

> db.data.find({情報:{URL: "http://www.1616.net/"、都市: "北京"}})。

> db.data.find({情報:{URL: "http://www.1616.net/"}})。

> db.data.find({情報:{都市: "北京"})。

あなたは、使用するインデックスを表示する)(query.explain使用することができます。

    

RS0:PRIMARY> db.data.find({情報:{都市: "北京"}})。説明()

{

        "queryPlanner":{

                "plannerVersion":1、

                "名前空間": "test.data"、

                "indexFilterSet":偽、

                "parsedQuery":{

                        "情報":{

                                "$ EQ":{

                                        「都市」:「北京」

                                }

                        }

                }、

                "winningPlan":{

                        "ステージ": "FETCH"、

                        "inputStage":{

                                "ステージ": "IXSCAN"、

                                "keyPattern":{

                                        "情報":1

                                }、

                                "INDEXNAME": "info_1"、

                                "isMultiKey":偽、

                                "isUnique":偽、

                                "isSparse":偽、

                                "isPartial":偽、

                                "indexVersion":1、

                                「方向」:「前方」、

                                "indexBounds":{

                                        "情報":[

                                                "[{都市:\" 北京\ "}、{都市:\ "北京\"}]"

                                        ]

                                }

                        }

                }、

                "rejectedPlans":[]

        }、

        "serverInfo":{

                "ホスト": "mycentos.WORKGROUP"、

                "ポート":27017、

                "バージョン": "3.2.8"、

                "gitVersion": "ed70e33130c977bda0024c125b56d159573dbaf0"

        }、

        "OK":1

}

 

しかし、このようなお問い合わせは行いません。

> Db.data.find({ "info.city": "北京"}); //フィールド部が引用されなければなりません

> db.data.find({info.url: "..."})。

このクエリは同様の複合インデックスを使用することができます。

> db.data.ensureIndex({ "info.url":1、 "info.city":1});

 

5.組み合わせ指数

> db.data.ensureIndex({ "info.url":1、 "info.city":1});

クエリ、および対照的に定義されたソートは、また、インデックス・スキャンを使用することができた場合でも。

RS0:PRIMARY> db.data.find({ "info.url":/http:*/i}).sort({"info.url」:-1、 "info.city": - 1})。説明()

{

        "queryPlanner":{

                "plannerVersion":1、

                "名前空間": "test.data"、

                "indexFilterSet":偽、

                "parsedQuery":{

                        "info.url":/のhttp:* / I

                }、

                "winningPlan":{

                        "ステージ": "FETCH"、

                        "inputStage":{

                                "ステージ": "IXSCAN"、

                                "フィルタ":{

                                        "info.url":/のhttp:* / I

                                }、

                                "keyPattern":{

                                        "info.url":1、

                                        "info.city":1

                                }、

                                "INDEXNAME": "info.url_1_info.city_1"、

                                "isMultiKey":偽、

                                "isUnique":偽、

                                "isSparse":偽、

                                "isPartial":偽、

                                "indexVersion":1、

                                「方向」:「後方」、

                                "indexBounds":{

                                        "info.url":[

                                                "[/のhttp:* / I、/のhttp:* / I]"、

                                                "({}、\" \ "]"

                                        ]、

                                        "info.city":[

                                                "[MaxKey、MinKey]"

                                        ]

                                }

                        }

                }、

                "rejectedPlans":[]

        }、

        "serverInfo":{

                "ホスト": "mycentos.WORKGROUP"、

                "ポート":27017、

                "バージョン": "3.2.8"、

                "gitVersion": "ed70e33130c977bda0024c125b56d159573dbaf0"

        }、

        "OK":1

}

 

仕上げセクション以降ます。http://m.zhizuobiao.com/technique/technique-19041500114/

おすすめ

転載: www.cnblogs.com/xibuhaohao/p/12050949.html