ब्यौरा
पिछले चरण में बनाए गए दस्तावेज़ों से फ़ील्ड हटाना.
जनरेट किए गए दस्तावेज़ों में, पिछली स्टेज के सभी फ़ील्ड शामिल होंगे. हालांकि, हटाए जाने के लिए चुने गए फ़ील्ड शामिल नहीं होंगे.
उदाहरण
Node.js
const results = await db.pipeline() .collection("cities") .removeFields("population", "location.state") .execute();
Web
const results = await execute(db.pipeline() .collection("cities") .removeFields("population", "location.state"));
Swift
let results = try await db.pipeline() .collection("cities") .removeFields(["population", "location.state"]) .execute()
Kotlin
val results = db.pipeline() .collection("cities") .removeFields("population", "location.state") .execute()
Java
Task<Pipeline.Snapshot> results = db.pipeline() .collection("cities") .removeFields("population", "location.state") .execute();
Python
results = ( client.pipeline() .collection("cities") .remove_fields("population", "location.state") .execute() )
Java
Pipeline.Snapshot results = firestore .pipeline() .collection("cities") .removeFields("population", "location.state") .execute() .get();
व्यवहार
नेस्ट किए गए फ़ील्ड हटाना
remove_fields(...) स्टेज में नेस्ट किए गए फ़ील्ड के सिंटैक्स का पालन किया जाता है. साथ ही, यह मैप से कुंजियां हटा देगा.
उदाहरण के लिए, डेटासेट से नेस्ट किए गए राज्य के फ़ील्ड को हटाने के लिए:
Node.js
await db.collection("cities").doc("SF").set({name: "San Francisco", location: {country: "USA", state: "California"}});
await db.collection("cities").doc("TO").set({name: "Toronto", location: {country: "Canada", province: "Ontario"}});
इस पाइपलाइन का इस्तेमाल किया जा सकता है:
Node.js
const results = await db.pipeline()
.collection("/cities")
.removeFields("location.state")
.execute();
इससे ये दस्तावेज़ जनरेट होते हैं:
{ name: "San Francisco", location: { country: "USA" } }
{ name: "Toronto", location: { country: "Canada", province: "Ontario" } }
ऐरे में मौजूद एलिमेंट को हटाने की सुविधा काम नहीं करती.
ऐसे फ़ील्ड हटाएं जो मौजूद नहीं हैं
अगर remove_fields(...) को दिया गया नेस्ट किया गया या टॉप-लेवल का फ़ील्ड, किसी दस्तावेज़ में मौजूद नहीं है, तो स्टेज उस फ़ील्ड के लिए दस्तावेज़ में बदलाव नहीं करेगी. हालांकि, अन्य मौजूदा फ़ील्ड अब भी हटा दिए जाएंगे.