'Is there a way to perform subquery on MongoDB using collection.aggregate() and PHP Driver?
I am migrating a MySQL
table which has 50 million+ rows
and 40 columns
to a MongoDB
database. This table data is shown on a html
table
and every column is searchable and sortable. To get a better performance on MySQL
queries I make a subselect
from this table filtering by a column named company_id
and limiting it to 50k rows and ordering by id
and date
to get the last 50k rows that belongs to that company, and then from this subselect
I perform the other filtering and ordering logics sent by frontend. Basically this is how the MySQL
Query looks like:
SELECT *
FROM (
SELECT field1, field2, field3, field4 -- other fields
FROM myTable
WHERE company_id = 50
ORDER BY id DESC, dateField desc
LIMIT 50000
) AS tb
WHERE tb.field1 = 'A filter'
AND tb.field2 = 'Another filter'
-- more and more filters
ORDER BY tb.FIELD3
There is any way to do something like that on a MongoDb
table
using db.collection.aggregate()
and Mongo
PHP
Driver?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|