Method: projects.databases.documents.runQuery

Sorgu çalıştırır.

HTTP isteği

POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:runQuery

URL, gRPC Kod Dönüştürme söz dizimini kullanır.

Yol parametreleri

Parametreler
parent

string

Zorunlu. Üst kaynak adı. Şu biçimde: projects/{projectId}/databases/{databaseId}/documents veya projects/{projectId}/databases/{databaseId}/documents/{document_path}. Örneğin: projects/my-project/databases/my-database/documents veya projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

İstek içeriği

İstek gövdesi, aşağıdaki yapıya sahip verileri içerir:

JSON gösterimi
{
  "explainOptions": {
    object (ExplainOptions)
  },

  // Union field query_type can be only one of the following:
  "structuredQuery": {
    object (StructuredQuery)
  }
  // End of list of possible types for union field query_type.

  // Union field consistency_selector can be only one of the following:
  "transaction": string,
  "newTransaction": {
    object (TransactionOptions)
  },
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
Alanlar
explainOptions

object (ExplainOptions)

İsteğe bağlı. Sorguyla ilgili seçenekleri açıklayın. Ayarlanırsa ek sorgu istatistikleri döndürülür. Aksi takdirde yalnızca sorgu sonuçları döndürülür.

Birleştirme alanı query_type. Çalıştırılacak sorgu. query_type şunlardan yalnızca biri olabilir:
structuredQuery

object (StructuredQuery)

Yapılandırılmış bir sorgu.

Birleştirme alanı consistency_selector. Bu işlem için tutarlılık modu. Ayarlanmazsa varsayılan olarak güçlü tutarlılık kullanılır. consistency_selector şunlardan yalnızca biri olabilir:
transaction

string (bytes format)

Sorguyu zaten etkin olan bir işlemde çalıştırın.

Buradaki değer, sorgunun yürütüleceği opak işlem kimliğidir.

base64 kodlu bir dize.

newTransaction

object (TransactionOptions)

Yeni bir işlem başlatır ve belgeleri okur. Varsayılan olarak salt okunur işlem kullanılır. Yeni işlem kimliği, akıştaki ilk yanıt olarak döndürülür.

readTime

string (Timestamp format)

Belgeleri belirtilen zamanda olduğu gibi okur.

Bu, son bir saat içindeki mikrosaniyelik bir hassasiyet zaman damgası olmalıdır. Belirli bir noktadan önceyi kurtarma özelliği etkinse son 7 gün içindeki bir tam dakikalık zaman damgası da olabilir.

RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: "2014-10-02T15:01:23Z" ve "2014-10-02T15:01:23.045123456Z".

Yanıt gövdesi

Firestore.RunQuery için yanıt.

Başarılı olursa yanıt gövdesi aşağıdaki yapıyla birlikte verileri içerir:

JSON gösterimi
{
  "transaction": string,
  "document": {
    object (Document)
  },
  "readTime": string,
  "skippedResults": integer,
  "explainMetrics": {
    object (ExplainMetrics)
  },

  // Union field continuation_selector can be only one of the following:
  "done": boolean
  // End of list of possible types for union field continuation_selector.
}
Alanlar
transaction

string (bytes format)

Bu istek kapsamında başlatılan işlem. Yalnızca ilk yanıtta ve yalnızca istekte RunQueryRequest.new_transaction ayarlanmışsa ayarlanabilir. Ayarlanırsa bu yanıtta başka alan ayarlanmaz.

base64 kodlu bir dize.

document

object (Document)

Kısmi ilerleme durumu raporlanırken ayarlanmayan bir sorgu sonucu.

readTime

string (Timestamp format)

Belgenin okunma zamanı. Bu artış monoton bir şekilde artıyor olabilir. Bu durumda, sonuç akışında yer alan önceki dokümanların readTime ve bu doküman arasında değişmediği garanti edilir.

Sorgu hiçbir sonuç döndürmezse readTime değerini içeren ve document içermeyen bir yanıt gönderilmez. Bu, sorgunun çalıştırıldığı zamanı temsil eder.

RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: "2014-10-02T15:01:23Z" ve "2014-10-02T15:01:23.045123456Z".

skippedResults

integer

Son yanıt ile geçerli yanıt arasındaki fark nedeniyle atlanan sonuçların sayısı.

explainMetrics

object (ExplainMetrics)

Sorgu, metrikleri açıklar. Bu mesaj yalnızca RunQueryRequest.explain_options sağlandığında mevcuttur ve akıştaki son yanıtla birlikte yalnızca bir kez gönderilir.

Birleştirme alanı continuation_selector. Sorgu için devamlı mod. Varsa mevcut sorgu yanıt akışının tamamlandığını belirtir. Bu, document varken veya olmadan ayarlanabilir ancak ayarlandığında başka sonuç döndürülmez. continuation_selector şunlardan yalnızca biri olabilir:
done

boolean

Bu kod varsa Firestore, isteği tamamen tamamlamıştır ve başka belge döndürülmeyecektir.

Yetkilendirme kapsamları

Aşağıdaki OAuth kapsamlarından birini gerektirir:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Daha fazla bilgi için Kimlik Doğrulamaya Genel Bakış başlıklı makaleye bakın.