相关疑难解决方法(0)

MongoDB - 分页

使用MongoDB时,是否有任何特殊模式可用于制作分页视图?说一个博客列出了10个最新帖子,你可以向后导航到较旧的帖子.

或者用例如blogpost.publishdate上的索引来解决它,然后跳过并限制结果?

paging mongodb

75
推荐指数
3
解决办法
5万
查看次数

对mongodb的大量记录缓慢分页

我在Mongo的一个集合中有超过30万条记录.

当我运行这个非常简单的查询时:

db.myCollection.find().limit(5);
Run Code Online (Sandbox Code Playgroud)

它只需几毫秒.

但是当我在查询中使用skip时:

db.myCollection.find().skip(200000).limit(5)
Run Code Online (Sandbox Code Playgroud)

它不会返回任何内容......它会运行几分钟而不会返回任何内容.

如何让它变得更好?

mongodb

57
推荐指数
4
解决办法
3万
查看次数

猫鼬中的子文档分页

我正在使用Mongoose 3.6,我的(简化的)模式如下所示

var commentSchema = new Schema({
    created: Date  
});

var userSchema = new Schema({
    comments    : [commentSchema],
});
Run Code Online (Sandbox Code Playgroud)

我想对评论进行分页,以便如果我的用户有25条评论,则页面将分为:

page 1: comments 15-24
page 2: comments 5-14
page 3: comments 0-4
page 4: empty
page 5: empty
...
Run Code Online (Sandbox Code Playgroud)

这就是我尝试过的

this.findById(user_id, {
        comments: {
            $slice: [-comment_page_index * comments_per_page, comments_per_page]
        }
    }, function(err, user) {
        //...
});
Run Code Online (Sandbox Code Playgroud)

虽然起初似乎很有效,但令我失望的是,发现$slice运算符会在达到集合范围时切断给定的索引。

所以我得到的是

page 1: comments 15-24
page 2: comments 5-14
page 3: comments 0-9
page 4: comments 0-9
page 5: comments 0-9 …
Run Code Online (Sandbox Code Playgroud)

pagination mongoose mongodb

5
推荐指数
1
解决办法
1530
查看次数

如何限制 MongoDB 中显示的嵌套文档的数量

我有由 20 到 500 个嵌套文档组成的父文档数组。如何限制每个父文档显示的嵌套文档的数量。

下面是我的文档和嵌套文档的结构。

[{
        id
        title
        users: [{
                user_id: 1,
                timestamp: 2354218,
                field3: 4
            }, {
                user_id: 1,
                timestamp: 2354218,
                field3: 4
            }, {
                user_id: 1,
                timestamp: 2354218,
                field3: 4
            },
            ...
        ]

    }, {

    },
    ...
]
Run Code Online (Sandbox Code Playgroud)

我想限制每个父文档显示的用户数量。如何?

我的查询

db.movies.aggregate(
[{$match: {
    "movie_title":  "Toy Story (1995)"}
  },{
    $lookup: {
        from: "users",
        localField: "users.user_id",
        foreignField: "users.id",
        as: "users"
    }
},
{$project: {

        movie_title: "$movie_title",
        users: { $slice: [ "$users", 1 ] }
    }}
]);
Run Code Online (Sandbox Code Playgroud)

document nested mongodb

2
推荐指数
1
解决办法
3201
查看次数

标签 统计

mongodb ×4

document ×1

mongoose ×1

nested ×1

pagination ×1

paging ×1