有没有办法使用collection.aggregate()和PHP驱动程序在MongoDB上执行子查询?
因此,基本上我正在将一个有没有办法使用collection.aggregate()和PHP驱动程序在MongoDB上执行子查询?,php,mongodb,aggregation-framework,Php,Mongodb,Aggregation Framework,因此,基本上我正在将一个MYSQL表迁移到一个MongoDB数据库,该表有5000多万行和40列。此表数据显示在html表中,每一列都可以搜索和排序。为了在Mysqlquerys上获得更好的性能,我从这个表中选择了子选项,通过名为company\u id的列进行过滤,并将其限制为50k行,并通过id和date进行排序,以获得属于该公司的最后50k行,然后从这个子选择中我执行前端发送的其他过滤和排序逻辑。基本上,Mysql查询就是这样的: SELECT * FROM (
MYSQL
表迁移到一个MongoDB
数据库,该表有5000多万行和40列。此表数据显示在html
表中,每一列都可以搜索和排序。为了在Mysql
querys上获得更好的性能,我从这个表中选择了子选项
,通过名为company\u id
的列进行过滤,并将其限制为50k行,并通过id
和date
进行排序,以获得属于该公司的最后50k行,然后从这个子选择中
我执行前端发送的其他过滤和排序逻辑。基本上,Mysql
查询就是这样的:
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
使用db.collection.aggregate()
和Mongo
PHP
驱动程序,在MongoDb
表上有没有类似的方法 您可以试用MongoCollection::aggregate
。看一看