php - 排序 MongoDB 结果

标签 php mongodb nosql

我在 MongoDB 中有以下结构(是一个示例结构):

Array
(
    [_id] => MongoId Object
        (
            [$id] => 4e465de048177e8105000003
        )

    [id_usuario] => MongoId Object
        (
            [$id] => 4e43b20648177e5305000000
        )

    [mensaje] => lero lero si?
    [created_at] => MongoDate Object
        (
            [sec] => 1313234400
            [usec] => 160000
        )
    [comentarios] => Array
        (
            [0] => Array
            (
                [comentario] => hola mundo
                [usuario] => [_id] => MongoId Object
                    (
                        [$id] => 4e465de048177e8105000003
                    )
                [created_at] => MongoDate Object
                (
                    [sec] => 1313234400
                    [usec] => 160000
                )
            )
            [1] => Array
            (
                [comentario] => hola mundo
                [usuario] => [_id] => MongoId Object
                    (
                        [$id] => 4e465de048177e8105000003
                    )
                [created_at] => MongoDate Object
                (
                    [sec] => 1313234400
                    [usec] => 160000
                )
            )
        )
)

我想获得按 created_at 降序排序的最后 10 条评论,我写了以下内容:

$db->usuarios->find()->sort(array('created_at' => -1))->limit(10)->skip(0);

(这是驱动 MongoDB 的 PHP 代码)

谁能帮我做同样的事情,但同时显示按 created_at 排序的最后 3 条评论?

这在单个查询中可能吗?你能帮忙写代码吗?

最佳答案

我不太了解 php,无法理解您描述的文档结构。所以我假设 comment 文档“嵌入”在您的 usuario 文档中。

如果为真,则您不能直接处理comment 文档。您将首先获取一个 usuario 文档。有了它,您将获得一组 comment 文档,您必须在客户端对这些文档进行排序和过滤。

或者,如果您的评论对象以特定顺序存储,您可以使用 $slice 来获取前 3 个或前 10 个或任何此类子集。更多信息:http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields#RetrievingaSubsetofFields-RetrievingaSubrangeofArrayElements

关于php - 排序 MongoDB 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7054032/

相关文章:

php - 创建发票(php)

mongodb - PyMongo - 名称必须是 Str 的实例

Mongodb:对象ID作为集合中的短主键

mongodb - NoSQL 与关系数据库与可能的混合

php - 登录表单不起作用,在 Symfony2 中提交后继续加载

javascript - 将选项 ID 值传递给 Controller ​​并通过 onclick 从另一个 Blade View 检索

php - SQL 查询从结果中选择列

javascript - 如何在 meteor 中响应式聚合 mongodb

mongodb:查询两个日期字段之间的时间段

entity-framework - 在 RavenDB 集合中存储/查询多种类型的最佳方法是什么?