まず、コレクションに割り当てるカスタム値を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/