mongodb子文档排序的问题
伊谢尔伦
伊谢尔伦 2017-04-21 11:17:14
[MongoDB讨论组]
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排序

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
怪我咯

类似这样使用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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号