0%

Node.js - 限制資料筆數 limit()

node

limit 語法在 Firebase API 會看到兩個,一個是取得前幾筆資料,跟取得後幾筆資料,使用的資料如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const data = {
tim: {
hight: 175,
age: 38,
weight: 77,
job: "boy",
},
min: {
hight: 155,
age: 39,
weight: 55,
job: "girl",
},
joshua: {
hight: 100,
age: 3,
weight: 13,
job: "boy",
},
carol: {
hight: 80,
age: 1,
weight: 10,
job: "girl",
},
};

而從 Realtime Database 看到的資料順序如下:

Realtime Database

db

limitToFirst 從前面取得資料、limitToLast 從後面取得資料

延續前面的資料內容,這次想從前面取得資料內容,條件是用 job 屬性排序,並且從 boy 開始取,然後只取得第一筆為男孩的資料,寫法如下:

sort.js

1
2
3
4
5
6
7
8
9
10
11
12
const ref = firebase.database().ref("home");
ref.set(data); //*寫入資料
ref
.orderByChild("job")
.startAt("boy")
.limitToFirst(1) //家在排序功能後面
.once("value", function (snapshot) {
snapshot.forEach((item) => {
console.log(item.key);
console.log(item.val());
});
});

檢查開發人員工具顯示結果,是否與預期相同。

dev tool

limitToFirst

limitToLast() 就是從後面取得資料。這邊就不做示範,而不管是從前面取資料還是從後面取資料,其內參數都可以按照自己想要的設定,要注意的是如果資料是給字串,就不能給數字喔!