PHP Mongodb-基于嵌套对象的排序查询

PHP Mongodb-基于嵌套对象的排序查询,php,mongodb,Php,Mongodb,我对PHP和MongoDB相当陌生,所以请耐心:) 这是我试图做的一个例子,而不是实际的数据,所以希望这有帮助 我有一个MongoDB集合,其中包含嵌套的对象,我希望根据其中一个嵌套字段对查询结果进行排序 通过MongoDB Compass从DB获取的样本行: 有没有办法过滤查询,或者我必须将行读入数组并进行排序?当然,mongoDB有一个强大的排序算法和工具,如sort、order\u by等。您可以使用php数组,但mongoDB有很多好处:) 我现在做了类似的解决方案,你可以这样做(你的m

我对PHP和MongoDB相当陌生,所以请耐心:)

这是我试图做的一个例子,而不是实际的数据,所以希望这有帮助

我有一个MongoDB集合,其中包含嵌套的对象,我希望根据其中一个嵌套字段对查询结果进行排序

通过MongoDB Compass从DB获取的样本行:


有没有办法过滤查询,或者我必须将行读入数组并进行排序?

当然,mongoDB有一个强大的排序算法和工具,如sort、order\u by等。您可以使用php数组,但mongoDB有很多好处:)

我现在做了类似的解决方案,你可以这样做(你的mongo类可能会有所不同)

Mongo文件对我们说

db.collection.find().sort( { age: -1 } )
从v3.2开始,mongo Shell中已弃用 从v3.2开始,mongo shell中不推荐使用$orderby运算符。在mongo shell中,改用cursor.sort()


您熟悉MongoDB的聚合框架吗?看看“展开”操作,您将能够应用排序函数。我研究了它,但不确定如何将其应用于查询。我会继续找的
$houses_query = new MongoDB\Driver\Query([ "_id" => "12345" ], [ 'sort' => [ 'houses.price' => 1 ]])
$videos = $this->mongo_db->where(
array('$text' => array('$search' => $q), 
'status' => 1))
->order_by(array('video_sales' => 'desc'))
->get('videos');
db.collection.find().sort( { age: -1 } )