MongoDB: 配列からのオブジェクトの削除
MongoDB では、$ を使用してドキュメントに埋め込まれた配列からオブジェクトを削除できます。プルオペレーター。配列から特定のオブジェクトを削除したい場合は、そのオブジェクトに正確に一致するクエリを提供する必要があります。
次のドキュメントを検討してください:
{
_id: 5150a1199fac0e6910000002,
name: 'some name',
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]
}
ID: 23 の項目を項目配列から削除するには、次のコマンドを使用します。
db.mycollection.update( { '_id': ObjectId("5150a1199fac0e6910000002") }, { $pull: { items: { id: 23 } } }, false, // Upsert true, // Multi );
このコマンドは、配列から項目を削除することによってドキュメントを更新します。クエリは _id フィールドを使用してドキュメントを指定し、$pull 演算子は items 配列をターゲットにします。 $pull オペレーション内で、削除するオブジェクトに一致するクエリを指定できます。この場合、オブジェクトの ID は 23 と一致します。
Mongoose/Node.js 実装
Mongoose では、次のコマンドを使用して配列からオブジェクトを削除できます。 pull() メソッド:
const Model = mongoose.model('Model', new mongoose.Schema({
items: [{
id: Number,
name: String
}]
}));
Model.update(
{ '_id': '5150a1199fac0e6910000002' },
{ $pull: { items: { id: 23 } } },
{ multi: true }, // Update all matching documents
(err, result) => { if (!err) console.log(result); }
);
このコードは、指定された _id に一致するすべてのドキュメントの項目配列から ID: 23 の項目を削除します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3