1
У меня есть три разных агрегата, которые я хотел бы объединить с одним.Объедините три разных агрегата в один один
objsCount = self.db.bidding.aggregate([
{ "$group": {
"_id": "$bid_item",
"number_of_objects": { "$sum": 1 }
}}
])
objsPrice = self.db.bidding.aggregate([
{"$match": {"$and" : [{"price": {"$ne":"null"}},{"users":{"$ne":"null"}}]}},
{ "$group": {
"_id": "$bid_item",
"total_price": { "$sum": '$price' },
"total_users": { "$sum": '$users' }
}}
])
objsHigestBid = self.db.bidding.aggregate([
{"$match": {"$and" : [{"highestBid": {"$ne":"null"}},{"users":{"$ne":"null"}}]}},
{ "$group": {
"_id": "$bid_item",
"total_number_of_users_after_bid": { "$sum": '$highestBid' }
}}
])
Выход Я ищу это:
[{ _id : '',
number_of_objects : '',
total_price : '',
total_users : '',
total_number_of_users_after_bid : ''
},...]
Как я могу изменить свои «агрегаты» на один сингл «агрегат», которые делают это возможным?
Вы хотите на '$ match' в вашем первом запросе? – styvane
... будет ли ваш второй запрос возвращать ожидаемый результат, если «upperBid» не равен нулю? будет ли ваш последний запрос работать, если «цена» не равна нулю? – styvane
Очень хорошие вопросы @ user3100115. «Вы хотите сопоставить $ в своем первом запросе?» - Нет, «.. ваш второй запрос возвращает ожидаемый результат, если« maximumBid »не null? Будет ли ваш последний запрос работать, если« цена »не равна нулю?» - Да и Да – Mikael