У меня есть проблема, и в последнее время это вызывает головную боль. Поэтому мне нужна ваша помощь.
У меня есть 2 коллекции: Клиенты (A) и их история платежей (B) . Теперь мне нужно получить все данные из A и сопоставить их с B по customer_id, а затем показать их в виде отчета. Пример данных A равен 100 000, а B равен 500 000.
Поэтому я должен использовать поиск, чтобы отобразить его и вернуть данные в мой код:
$customer_payments = $mongo_db->aggregate_pipeline('Customers',
array(
'$lookup' => array(
'from' => 'payment_history',
'localField' => 'customer_id',
'foreignField' => 'id',
'as' => 'payment_info',
),
)
);
или я прочитал все A данные и l oop, а затем прочитал один за другим в базу данных, чтобы получить B данные и отобразить их?
$customers = $mongo_db->get('Customers');
foreach ($customers as $key => $cus) {
$payment_info = $mongo_db->where('customer_id', $cus['id'])->get('payment_history');
$cus['payment_info'] = $payment_info;
}
Я использую PHP и MongoDB. Мой лидер сказал мне не использовать поиск, а читать один за другим -_-.
В конце концов, какой из них лучше для меня и производительность сервера?