我的需求是从所有结果当中找到gid = 02569的,并且按照对应的date进行DESC排序?

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排序


大话西游666
浏览 186回答 2
2回答

慕桂英546537

类似这样使用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吧。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB