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

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

DDD
DDDオリジナル
2024-11-02 07:26:291054ブラウズ

How to Remove a Specific Object from an Array in MongoDB?

MongoDB: 配列からのオブジェクトの削除

問題:

MongoDB で、特定のオブジェクトを抽出するにはどうすればよいですか?ドキュメント内に埋め込まれた配列から?このサンプル ドキュメントでは、ID: 23 のオブジェクトを items 配列から削除したいと考えています。

解決策:

これを実現するには、次の $pull 演算子を使用します。配列内の目的のオブジェクトと一致する、より具体的なクエリ。

MongoDB クエリ:

db.mycollection.update(
    { '_id': ObjectId("5150a1199fac0e6910000002") }, 
    { $pull: { items: { id: 23 } } },
    false, // Upsert
    true // Multi
);

説明:

  • $pull 演算子: 配列から要素を削除するために使用されます。
  • { items: { id: 23 } }: 特定のフィールドと照合して、削除するネストされたオブジェクトを指定します。
  • Upsert: 更新が既存のドキュメントと一致しない場合に新しいドキュメントを作成しないようにするには、false に設定します。
  • Multi: 複数の一致するドキュメントに更新を適用するには、true に設定します (ただし、一致するドキュメントは 1 つだけである必要があります)この場合)。

Node.js/Mongoose:

Mongoose では、次のクエリを使用できます:

<code class="javascript">MyModel.findOneAndUpdate(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }
);</code>

注: MongoDB 3.6 は、配列内のより複雑なフィルタリングのために、$pull と組み合わせた $elemMatch 演算子もサポートしています。

以上がMongoDB の配列から特定のオブジェクトを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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