Array(
[id] => 00008
[game] => Array
(
[0] => Array
(
[gid] => 02569
[date] => 1363583244
)
[1] => Array
(
[gid] => 04001
[date] => 1363339740
)
)
)
Array(
[id] => 00010
[game] => Array
(
[0] => Array
(
[gid] => 02569
[date] => 1363583244
)
[1] => Array
(
[gid] => 04028
[date] => 1363889740
)
)
)
上面是众多结果当中的2个。我现在的需求是从所有结果当中找到gid = 02569的,并且按照对应的date进行DESC排序
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
类似这样使用aggregate框架来实现(仅供参考思路,未测试)。mongodb 2.2+可用。
db.xxx.aggregate([ { $match: {'game.gid': 02569} }, { $sort: {$date: -1} } ])你要把什么排序呢?整个doc? 还是doc.game?就是说是不是只看game这一级的?
如果你要把子文档弄出来排序,用aggregation framework就好了。但是应该在楼上的加个unwind,而且sort的key也不对,应该是game.date吧。
php的aggregation framework 文档: http://www.php.net/manual/en/mongocollection.aggregate.php