簡體   English   中英

存取Google Firestore集合的最后N個文件

[英]Access last N documents of Google Firestore collection

我想訪問Google Firestore集合中的最后N個文檔。 文檔的密鑰是ISO格式的時間戳。 首先需要按時間戳記密鑰對集合進行排序,並且要檢索最后更新的N個文檔。 此操作必須實時且快速。

events(collection) =>
documents as below:
2019-01-07T08:21:18.600Z => {
  symbolname: '10900CE',
  price: '10825.0',
  timestamp: '2019-01-07T13:51:18Z',
  quantity: '2.0',
  side: 'SELL' }
2019-01-07T08:21:28.614Z => { 
  symbolname: '10800PE',
  price: '10825.0',
  timestamp: '2019-01-07T13:51:28Z',
  quantity: '2.0',
  side: 'BUY' }
2019-01-07T09:45:24.783Z => { side: 'SELL',
  symbolname: '10800PE',
  price: '10805.0',
  timestamp: '2019-01-07T15:15:24Z',
  quantity: '2.0' }

我目前在整個集合中循環,並將鍵添加到數組中,然后對該數組進行排序並通過這些鍵獲取最后N個文檔,如下所示:

var ids = []
db.collection('events').get()
  .then((snapshot) => {
    snapshot.forEach((doc) => {
      ids.push(doc.id)
    });
  })
  .then(()=>{
    //sortIds(ids);
    console.log(JSON.stringify(ids[ids.length-2])) //second last entry 2019-01-07T08:21:28.614Z
  })
  .catch((err) => {
    console.log('Error getting documents', err);
  });

如果集合大小增加,此操作將花費很長時間。 是否有實現此目的的最佳方法(排序/降序收集並獲取最后N個文檔)?

謝謝

也許是這樣的:

db.collection('events').orderBy("timestamp").limit(n)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM