2017-08-06 9 views
0

Ich bin etwas verwirrt darüber, wie die Indizierung von Daten in Mongodb funktioniert.Mongoose Abfrage indizierte Daten

Zum Beispiel habe ich eine Sammlung namens Erfahrungen mit rund 15 Tausend productfeeds:

{ "_id" : ObjectId("597df357c6622963cc3d834e"), "userImg" : false, "category" : "Test" } 

Jetzt bin ich mit MongoDB Indizierung der Kategorie wie folgt aus:

db.experiences.createIndex({ category: 1 }) 

Dann bin ich die indiziert abfragen Sammlung wie folgt:

var query = {}; 
query.category = categoryVal; 
query.price = 100; 
Experiences.find(query).lean().exec(function (err, rec) { 
       if(err) 
        console.log('Error at records: '+err); 
       else { 
        console.log(rec); 
} 

Hier bin ich mir nicht sicher, ob das funktioniert oder nicht? Ich erhalte die abgerufenen Daten, aber die Leistung ist die gleiche wie zuvor. Was stimmt damit nicht?

+0

Sie können diese Antwort https://stackoverflow.com/questions/44519353/whats-the-strategy-for-creating-index-for-this-query/44520558#44520558 –

Antwort

0

Um zu überprüfen, ob Ihre Abfrage den Index verwendet oder nicht, verwenden Sie explain für Ihre Abfrage von Mongo Shell.

Der explain Plan wird Ihnen geben, was passiert hinter dem gesehen, um Ihre Daten zu erhalten.

+0

Ok, es ist möglich, Lean zu kombinieren() und erklären(). Was ist das anders? –

+0

Sie müssen das wahrscheinlich selbst in den APIs von Mungoose überprüfen – Astro