新聞中心
Collection.get / Query.get
獲取集合數(shù)據(jù),或獲取根據(jù)查詢條件篩選后的集合數(shù)據(jù)。

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)乾安,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
如果沒有指定 limit,則默認(rèn)最多取 20 條記錄。
如果沒有指定 skip,則默認(rèn)從第 0 條記錄開始取,skip 常用于分頁(yè),例子可見第二個(gè)示例代碼。
如果需要取集合中所有的數(shù)據(jù),可以參考第三個(gè)示例代碼
函數(shù)簽名如下:
function get(): Promise
返回值說明
Promise 的 resolve 和 reject 的結(jié)果定義如下:
| 結(jié)果說明 | |
|---|---|
| resolve | 查詢的結(jié)果,Result 定義見下方 |
| reject | 失敗原因 |
Result 說明
Promise resolve 的結(jié)果 Result 是一個(gè)如下結(jié)構(gòu)的對(duì)象:
| 字段 | 類型 | 說明 |
|---|---|---|
| data | Array | 查詢的結(jié)果數(shù)組,數(shù)據(jù)的每個(gè)元素是一個(gè) Object,代表一條記錄 |
示例代碼 1
獲取我的待辦事項(xiàng)清單
Promise 風(fēng)格
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
return await db.collection('todos').where({
_openid: 'xxx' // 填入當(dāng)前用戶 openid
}).get()
}
示例代碼 2:分頁(yè)取數(shù)據(jù)
獲取我的第二頁(yè)的待辦事項(xiàng)清單,假設(shè)一頁(yè) 10 條,現(xiàn)在要取第 2 頁(yè),則可以指定 skip 10 條記錄
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
return await db.collection('todos')
.where({
_openid: 'xxx', // 填入當(dāng)前用戶 openid
})
.skip(10) // 跳過結(jié)果集中的前 10 條,從第 11 條開始返回
.limit(10) // 限制返回?cái)?shù)量為 10 條
.get()
}
示例代碼 3:取集合所有數(shù)據(jù)
獲取集合中的所有待辦事項(xiàng)清單:因?yàn)橛心J(rèn) limit 100 條的限制,因此很可能一個(gè)請(qǐng)求無(wú)法取出所有數(shù)據(jù),需要分批次取:
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
const MAX_LIMIT = 100
exports.main = async (event, context) => {
// 先取出集合記錄總數(shù)
const countResult = await db.collection('todos').count()
const total = countResult.total
// 計(jì)算需分幾次取
const batchTimes = Math.ceil(total / 100)
// 承載所有讀操作的 promise 的數(shù)組
const tasks = []
for (let i = 0; i < batchTimes; i++) {
const promise = db.collection('todos').skip(i * MAX_LIMIT).limit(MAX_LIMIT).get()
tasks.push(promise)
}
// 等待所有
return (await Promise.all(tasks)).reduce((acc, cur) => {
return {
data: acc.data.concat(cur.data),
errMsg: acc.errMsg,
}
})
} 網(wǎng)站名稱:創(chuàng)新互聯(lián)小程序教程:微信小程序云開發(fā)服務(wù)端數(shù)據(jù)庫(kù)API獲取集合數(shù)據(jù)
本文鏈接:http://www.5511xx.com/article/cojjipp.html


咨詢
建站咨詢
