mongodb子文档排序的问题
伊谢尔伦
伊谢尔伦 2017-04-21 11:17:14
0
2
637
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伐。

répondre à tous(2)
刘奇

Il est implémenté à l'aide d'un framework agrégé comme celui-ci (à titre de référence uniquement, non testé). Disponible avec mongodb 2.2+.

db.xxx.aggregate([
    {
        $match: {'game.gid': 02569}
    },
    {
        $sort: {$date: -1}
    }
])
黄舟

Que souhaitez-vous trier ? Le doc en entier ? Ou doc.game ? En d’autres termes, cela s’intéresse-t-il uniquement au niveau du jeu ?

Si vous souhaitez trier des sous-documents, utilisez simplement le framework d'agrégation. Mais un déroulement devrait être ajouté à l'étage, et la clé de tri est fausse, elle devrait être game.date.

Documentation du framework d'agrégation php : http://www.php.net/manual/en/mongocollection.aggregate.php

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal