MongoDB: 配列からのオブジェクトの削除
MongoDB では、$ を使用してドキュメントに埋め込まれた配列からオブジェクトを削除できます。プルオペレーター。配列から特定のオブジェクトを削除したい場合は、オブジェクトに正確に一致するクエリを提供する必要があります。
次のドキュメントを検討してください:
<code class="json">{ _id: 5150a1199fac0e6910000002, name: 'some name', items: [{ id: 23, name: 'item name 23' },{ id: 24, name: 'item name 24' }] }</code>
ID を持つ項目を削除するには: items 配列から 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() メソッド:
<code class="javascript">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); } );</code>
このコードは、指定された _id に一致するすべてのドキュメントの items 配列から ID: 23 のアイテムを削除します。
以上がMongoDB の配列からオブジェクトを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。