gpt4 book ai didi

mongodb - 从集合中获取第 n 个项目

转载 作者:IT老高 更新时间:2023-10-28 12:30:41 25 4
gpt4 key购买 nike

我在mongodb的学习阶段。

我有一个测试网站项目,其中故事的每一步都是 domain.com/step例如,通过 domain.com/14 访问第 14 步

换句话说,对于上述情况,我需要访问我的集合中的第 14 个文档来提供它。

到目前为止,我一直在使用 find().skip(n).limit(1) 方法来返回第 n 个文档,但是它变得非常慢当有太多文档要跳过时。所以我需要一种更有效的方法来获取我的集合中的第 n 个文档。

感谢任何想法。

最佳答案

在您的文档中添加一个字段,告诉您这是哪一步,为该字段添加一个索引并通过它进行查询。

文档:

{
step:14
text:"text",
date:date,
imageurl:"imageurl"
}

索引:

db.collection.createIndex({step:1});

查询:

db.collection.find({step:14});

依赖集合中的自然顺序不仅慢(正如您发现的那样),而且也不可靠。当您开始一个新集合并插入一堆文档时,您通常会按照插入它们的顺序找到它们。但是,当您在插入文档后更改文档时,顺序可能会以不可预知的方式困惑。所以永远不要依赖插入顺序是一致的。

异常(exception):Capped Collections保证插入顺序保持一致。但是很少有这些有用的用例,我认为您在这里没有这样的用例。

关于mongodb - 从集合中获取第 n 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31897103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com