官术网_书友最值得收藏!

How it works...

In step 1, we used the mongoimport utility to import our sample dataset from chapter_2_mock_data.csv which is a comma separated file. We'll discuss more about mongoimport in later chapters, so don't worry about it for now. Once we import the data, we execute the mongo shell and confirm that we've indeed imported our sample dataset (100,000 documents).

In step 4, we run a simple find() function chained with the explain() function. The explain() function shows us all the details about the execution of our query, especially the executionStats. In this, if you look at the value of key executionStages['stage'], you can see it says COLLSAN. This indicates that the entire collection was scanned, which can be confirmed by looking at the totalDocsExamined key's value, which should say 100,000. Clearly our collection needs an index!

In step 5, we create and index by calling db.mockdata.createIndex({'city': 1}). In createIndex() function, we mention the city field with value of 1 which tells MongoDB to create an ascending index on this key. You can use -1 to create a descending index, if need be. By executing this function, MongoDB immediately begins creating an index on the collection.

Index creation is an intensive blocking call which means database operations will be blocked until the index is created. We will examine how to create background indexes in later recipes, in this chapter.

In step 6, we execute the exact same find() query, as we did in step 4, and upon inspecting the executionStats, you can observe that the value of key executionStages now contains some more details. Especially, the value of stage key is FETCH and the inputStages['stage'] is IXSCAN. In short, this indicates that the query was fetched from by running an index scan. As this was a direct index hit, the value of totalDocsExamined is 1.

主站蜘蛛池模板: 泸州市| 安宁市| 临海市| 郧西县| 兰考县| 通州市| 辽源市| 理塘县| 公安县| 玉环县| 衡东县| 张家界市| 台东市| 蒲江县| 西乌珠穆沁旗| 临海市| 天长市| 沿河| 湖州市| 乌拉特中旗| 重庆市| 桦南县| 银川市| 武定县| 濮阳县| 岢岚县| 凭祥市| 奉贤区| 万盛区| 宁晋县| 正阳县| 垣曲县| 巴林左旗| 昌邑市| 淮滨县| 宣武区| 桦南县| 青州市| 金山区| 正镶白旗| 依安县|