摘要:我想使用'跳过' MySql和MongoDb中使用的函数。 但是,' startAfter(number)'不跳过。
我正在制作一个公告牌。然后我得到了一个问题。
这是页面跳过的问题。
我使用将页面直接移动给用户的基本方法。
但是,我找不到Mysql或MongoDB过去使用的任何跳过函数。
这是我的代码的一部分。
return db.collection('boards').doc(title).collection('posts')
.orderBy('date').startAfter(2).limit(10).get()
所以我想跳过按日期排序的数据中的两个数据。
但是,任何号码都可以在' startAfter'将从第一个数据中获取。
当然,我在官方文档中检查了以下代码。
return first.get().then(function (documentSnapshots) {
// Get the last visible document
var lastVisible = documentSnapshots.docs[documentSnapshots.docs.length-1];
console.log("last", lastVisible);
// Construct a new query starting at this document,
// get the next 25 cities.
var next = db.collection("cities")
.orderBy("population")
.startAfter(lastVisible)
.limit(25);
});
但是,上述方法非常麻烦,因为可以无条件地获得现有数据。
有没有好方法?我在等待回复。
答案 0 :(得分:3)
此状态的文档:
<强> fieldValuesOrDocumentSnapshot 强>
(可重复任何类型或DocumentSnapshot)
查询结果应该在之后开始的文档的快照,或者按照查询的顺序依次开始此查询的字段值。
因此,您无法简单地指定要跳过的文档数。您将需要知道第二个文档中的值(ID,字段值等)或获取前两个文档,然后使用第二个文档的快照来生成查询。
使用Admin SDK,有offset方法,可以让您实现所需的目标。