ホームページ >ウェブフロントエンド >jsチュートリアル >MongoDB の配列からオブジェクトを削除するにはどうすればよいですか?

MongoDB の配列からオブジェクトを削除するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 02:29:02359ブラウズ

How do I remove an object from an array in MongoDB?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。