説明
前のステージで生成されたドキュメントのフィールドを削除します。
生成されたドキュメントには、削除対象として指定されたフィールドを除く、前のステージのすべてのフィールドが含まれています。
構文
Node.js
const results = await db.pipeline()
.collection("/cities")
.removeFields('population', 'location.state')
.execute();
クライアントの例
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 ステージはネストされたフィールド構文に従って、マップからキーを削除します。
たとえば、ネストされた state フィールドをデータセットから削除するには、次のようにします。
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 で指定されたネストされたフィールドまたはトップレベル フィールドがドキュメントに存在しない場合、このステージでは、このフィールドのドキュメントは編集されません。他の既存のフィールドは引き続き削除されます。