Selrac
Selrac

Reputation: 2293

MongoDB best optimisation on embedded documents using index

In MondoDB, how can you optimize better a collection with embedded documents using index, if you need to query the embedded document?

For example, in a collection with the following format:

{
    name: “Andy”,
    address: {
        city: “London”,
        street: “Sunny St.”
    }
}

If we need to query by:

db.collection.find( {$and: [ {"address.city ": “London”}, {"address”: “Sunny St."} ] } )

Which type of index will be better:

1.  db.collection.createIndex({"address":1})

2.  db.collection.createIndex({"address.city ":1}) 
    db.collection.createIndex({"address.street":1})

3.  db.collection.createIndex({"address.city ":1, "address.street":1})

Thanks

Upvotes: 1

Views: 59

Answers (1)

profesor79
profesor79

Reputation: 9473

for given query proposal number 3

db.collection.createIndex({"address.city ":1, "address.street":1})

will do the job as there is logical relation city=> street

if you need to get more precise output how mongo uses index and perform your own test use query.explain("executionStats") to see index usage.

more here

Upvotes: 1

Related Questions