对数据进行排序和限制其数量

Cloud Firestore 提供了强大的查询功能,用于指定您要从集合中检索哪些文档。这些查询也可以与 get() 或 addSnapshotListener() 结合使用,如获取数据中所述。

对数据进行排序和限制其数量

默认情况下,查询会按文档 ID 以升序检索符合查询条件的所有文档。您可以使用 orderBy() 指定数据的排序顺序,并可使用 limit() 限制检索到的文档数量。如果您指定 limit(),其值必须大于或等于零。

例如,您可以通过以下代码查询按字母顺序排列的前 3 个城市:

Web

import { query, orderBy, limit } from "firebase/firestore";

const q = query(citiesRef, orderBy("name"), limit(3));

order_and_limit.js

Web

citiesRef.orderBy("name").limit(3);

test.firestore.js
Swift

注意:此产品不适用于 watchOS 和 App Clip 目标。

citiesRef.order(by: "name").limit(to: 3)

ViewController.swift
Objective-C

注意:此产品不适用于 watchOS 和 App Clip 目标。

[[citiesRef queryOrderedByField:@"name"] queryLimitedTo:3];

ViewController.m

Kotlin

citiesRef.orderBy("name").limit(3)

DocSnippets.kt

Java

citiesRef.orderBy("name").limit(3);

DocSnippets.java

Dart

final citiesRef = db.collection("cities");
citiesRef.orderBy("name").limit(3);

firestore.dart
Java
Query query = cities.orderBy("name").limit(3);
Query query = cities.orderBy("name").limitToLast(3);

QueryDataSnippets.java
Python
cities_ref = db.collection("cities")
query = cities_ref.order_by("name").limit_to_last(2)
results = query.get()

snippets.py

Python

cities_ref = db.collection("cities")
query = cities_ref.order_by("name").limit_to_last(2)
results = await query.get()

snippets.py
C++
cities_ref.OrderBy("name").Limit(3);

snippets.cpp
Node.js
const firstThreeRes = await citiesRef.orderBy('name').limit(3).get();

index.js
Go
query := cities.OrderBy("name", firestore.Asc).Limit(3)
query := cities.OrderBy("name", firestore.Asc).LimitToLast(3)

query.go
PHP

PHP

如需详细了解如何安装和创建 Cloud Firestore 客户端,请参阅 Cloud Firestore 客户端库。

$query = $citiesRef->orderBy('name')->limit(3);

query_order_limit.php