MongoDB Indexing Part 3

Sort Direction for index

When we created the index, we specified the sort direction for the index, in this case both ascending. Sorting on this indexes would work only is they are both indexed ascending or descending. But if you ix the direction of either fields, mongo will skip indexing all together.

Continue reading


MongoDB Indexing Part 2

Multi Term Query

db.animals.find({name:’cat’, tags:’land’}).explain()

— Looking for the name ‘cat and the tag ‘land’. the result


As you can see there is an index and the same index is being used.

Continue reading

MongoDB Indexing : Part 1

The Basics

Lets say you have a statement like{x:2})

What does the server do in order to find this document?  It does an innocuous  for-each loop looking for the values, document by document ( assuming the documents were placed contiguously and there was no other logic involved in storing the document) until it finds the value (trying to make a point so I am over simplifying it).

Obviously what I have just stated is a very slow & inefficient way for searching the document. The solution is to create an Index ( as in all other modern databases). Each document has its own location on disk and an index logically holds mapping to those locations from field values.

Continue reading

MongoDB : Finding Documents

Query Criteria

Find, projection)

Query: which documents to find

projection: Fields to be included (optional)

Example :{_id:1}, {_id:1})

In the above query we have asked to return the _ID field with a matching criteria of 1

Continue reading

MongoDB CRUD Operations

Previous Article: Data Storage Internals

Create Documents

Assuming you are in the test database in Mongo and you want to find out the tables (There are no tables in Mongo) and collections (only collections) in the database.

>Show collections
>db.Foo.Save({_id:1, x:10})
{"_id":1, "x":10}
>Show collections()
>db.Bar.Save({_id:1, x:10})
>show collections()

Since it is a test DB there are no collections.

Remember that collections in Mongo defines the scope of interaction with documents

Continue reading