ब्यौरा
पिछले चरण में बनाए गए दस्तावेज़ों में नए फ़ील्ड जोड़ें.
जनरेट किए गए दस्तावेज़ों में, पिछली स्टेज के सभी फ़ील्ड के साथ-साथ नए जोड़े गए सभी फ़ील्ड भी शामिल होंगे. साथ ही, पिछली स्टेज के दस्तावेज़ में मौजूद एक ही नाम वाले फ़ील्ड को नए फ़ील्ड से बदल दिया जाएगा. add_fields(...) स्टेज में, नेस्ट किए गए फ़ील्ड को अपडेट किया जा सकता है. इसके लिए, नेस्ट किए गए फ़ील्ड के नाम को एलियास के तौर पर सेट करें.
उदाहरण
Web
const result = await execute(db.pipeline() .collection("books") .select(field("soldBooks").add(field("unsoldBooks")).as("totalBooks")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("soldBooks").add(Field("unsoldBooks")).as("totalBooks")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(Expression.add(field("soldBooks"), field("unsoldBooks")).alias("totalBooks")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(Expression.add(field("soldBooks"), field("unsoldBooks")).alias("totalBooks")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("soldBooks").add(Field.of("unsoldBooks")).as_("totalBooks")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(add(field("soldBooks"), field("unsoldBooks")).as("totalBooks")) .execute() .get();
जाएं
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Add(firestore.FieldOf("soldBooks"), firestore.FieldOf("unsoldBooks")).As("totalBooks"), )). Execute(ctx)
व्यवहार
ओवरलैप होने वाले फ़ील्ड
किसी एक्सप्रेशन को ऐसा उपनाम असाइन करने पर जो पिछले चरण के दस्तावेज़ों में पहले से मौजूद है, add_fields(...) चरण पिछले फ़ील्ड को बदल देगा. इसका इस्तेमाल, एक ही फ़ील्ड के नाम पर कई एक्सप्रेशन को एक साथ जोड़ने के लिए किया जा सकता है. जैसे:
Node.js
const results = await db.pipeline()
.collection("/users")
.addFields(field('age').abs().as('age'))
.addFields(field('age').add(10).as('age'))
.execute();
नेस्ट किए गए फ़ील्ड
नेस्ट किए गए फ़ील्ड (जैसे, . सिंटैक्स वाले फ़ील्ड) को इस चरण के दौरान अपडेट किया जा सकता है. इससे किसी फ़ील्ड को "इन-प्लेस" अपडेट किया जा सकता है. जैसे:
Node.js
const results = await db.pipeline()
.collection("/users")
.addFields(field('address.city').toLower().as('address.city'))
.execute();
किसी नेस्ट किए गए फ़ील्ड को एक्सप्रेशन असाइन करने पर, कोई भी छूटा हुआ पैरंट फ़ील्ड भी अपने-आप बन जाएगा.