2013-03-15 6 views
0

Я вложил здесь два совокупных запроса pymongo, оба возвращают тот же результат. Я хочу знать, какой из них будет работать лучше,Pymongo, какой из этих запросов заполнить будет лучше.

условия трубопровода два матча

db.bseadjprice.aggregate([ 
      {"$match":{"scripcode":"533159"}} , 
      {"$match":{"date":{"$in":dt}}}, 
      {"$project":{"_id":0, "high":"$high", "low" : "$low"}} 
     ]) 

условия в трубопроводе одного матча

db.bseadjprice.aggregate([ 
     {"$match":{"scripcode":"533159", "date": {"$in":dt}}}, 
     {"$project":{"_id":0, "high":"$high", "low" : "$low"}} 
    ]) 

Заранее спасибо за ваши входы ,

+0

Вы пытались использовать $ explain (http://docs.mongodb.org/manual/reference/operator/explain/), чтобы узнать, что он делает? Вы не указали, что проиндексировано. Лучший ответ - это сделать настоящие тесты. Почему бы не использовать просто 'find' вместо' aggregate'? – WiredPrairie

+0

Нет, я не пробовал $ объяснять. Благодарю. Попробуй и расскажешь. –

+0

Почему вы используете 'aggregate', а не просто' find'? – shelman

ответ

0

Два матча могут помешать 1 событию: Если первое совпадение ложно - второе совпадение не будет работать. это может быть быстрее в циклах или с большими данными и сильным запросом.